当前位置: 首页 > 面试题库 >

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

林意蕴
2023-03-14
问题内容

说我有

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)]]

但这如何工作?


问题答案:

传递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])

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



 类似资料:
  • 看看下面的伪C++代码: 有两个函数带有参数。参数计数大于三,但为了简单起见,例如设为三。 -它是模板函数,具有与相同的参数计数,并且参数具有与相同的类型。但是(!)参数上的顺序可以(或不能)不同。例如: 那么如何在中重新排序参数,以便使用正确的参数序列调用呢?

  • 本文向大家介绍详解python的sorted函数对字典按key排序和按value排序,包括了详解python的sorted函数对字典按key排序和按value排序的使用技巧和注意事项,需要的朋友参考一下 1.sorted函数按key值对字典排序 先来基本介绍一下sorted函数,sorted(iterable,key,reverse),sorted一共有iterable,key,reverse这三

  • 问题内容: 如果我写 然后给出0、1、2、3、4,这 是否意味着Python同时向i分配了0、1、2、3、4? 但是,如果我写了: 然后我叫a,它只给出5, 但是如果我加上“ print a”,它得到1、2、3、4、5。 所以我的问题是,这有什么区别? 是字符串还是列表还是其他? 也许有人可以帮助我进行梳理: 如果运行此类代码,则仅当l = 5时才能得到答案。 如何使它们开始循环? 即l = 0获

  • 在通常情况下,定义函数时,函数的参数个数是预先确定的。例如,编写计算两个数相加的函数 add(a, b),代码如下: def add(a, b): return a + b sum = add(1, 2) 在第 1 行,定义了函数 add,函数有两个参数,第 1 个参数是 a,第 2 个参数是 b 在第 2 行,计算参数 a 和 参数 b 的累加和,通过 return 语句将计

  • 问题内容: 如何找到Python函数的参数数量?我需要知道它有多少个普通参数以及多少个命名参数。 例: 此方法有2个参数和1个命名参数。 问题答案: 早 于接受的答案已于 弃用 。现在,您应该选择取代它的类,而不是使用它。 创建功能的签名是通过简单的功能: 现在,您可以通过以下方式快速查看其参数: 或者您也可以通过来获取属性名称到参数对象的映射。 此外,你可以叫上也看到的参数此功能,需要数量: 映

  • 问题内容: 试图了解和内置函数的工作方式。 我正在尝试比较元组,以便如果任何值不同,则它将返回,如果它们都相同,则将返回。在这种情况下,他们如何工作以返回[False,False,False]? 是一个。 据我所知,这应该输出 因为相同,不同,并且相同。 为什么对所有元组求值为False? 问题答案: 你可以粗略地认为和作为系列的逻辑和分别运营。 任何 当至少一个元素是 时将返回。阅读有关真值测试