【发布时间】:2021-04-25 05:06:55
【问题描述】:
我正在用书学习python,在定义合并排序代码时有一个问题。
根据书中的条件,我成功定义了代码
问题是关于参数键的使用。
我之前已经学会了如何使用参数键。
据我所知,关键是改变比较标准的功能
例如,它可以如下使用。我学会了。
def selection_sort(xs, key=lambda x: x):
ss = []
while xs != []:
smallest = min(xs, key=key)
xs.remove(smallest)
ss.append(smallest)
return ss
# Execution value of selection_sort
> selection_sort([4, -2, 3, -1, 5])
> [-2, -1, 3, 4, 5]
> selection_sort([4, -2, 3, -1, 5], key = abs)
> [-1, -2, 3, 4, 5]
> selection_sort([4, -2, 3, -1, 5], key= lambda x: -x)
> [5, 4, 3, -1, -2]
以下是我的合并排序代码的一部分。
我知道的参数键是用作内置函数的参数值。
那么下面代码中没有内置函数就不能使用key吗?
我想知道我可以将使用更改排序条件的关键放在哪里。
def merge(left,right, key = lambda x: x): # A function that merge sort two list
ss = []
while not (left == [] or right == []):
if left[0] <= right[0]:
ss.append( left[0] )
left = left[1:]
else:
ss.append( right[0] )
right = right[1:]
ss.extend(left)
ss.extend(right)
return ss
# Execution value of merge
merge([18, 23, 32], [7, 11, 55, 99])
> [7, 11, 18, 23, 32, 55, 99]
【问题讨论】:
标签: python parameters mergesort