小编典典

python的排序函数中的key参数如何工作?

python

说我有

votes = {'Charlie': 20, 'Able': 10, 'Baker': 20, 'Dog': 15}

我明白

print(sorted(votes.items(), key = lambda x: x[1]))

会导致

[(’Able’,10),(’Dog’,15),(’Baker’,20),(’Charlie’,20)]]

但这如何工作?


阅读 234

收藏
2020-12-20

共1个答案

小编典典

传递key给您的函数将获得要排序的每个项目,并返回Python可以排序的“键”。因此,如果要按字符串的 相反顺序
对字符串列表进行排序,可以执行以下操作:

list_of_strings.sort(key=lambda s: s[::-1])

这使您可以指定每个项目的排序依据值,而不必更改项目。这样,您不必构建反向字符串列表,对其进行排序,然后将它们反向反向。

# DON'T do this

data = ['abc', 'def', 'ghi', 'jkl']
reversed_data = [s[::-1] for s in data]
reversed_data.sort()
data = [s[::-1] for s in reversed_data]

# Do this

data.sort(key=lambda s: s[::-1])

在您的情况下,代码按元组中的 第二个 项目对每个项目进行排序,而通常它最初将按元组中的第一个项目进行排序,然后中断与第二个项目的联系。

2020-12-20