2024-06-13 19:52:38 发布
网友
说我有
votes = {'Charlie': 20, 'Able': 10, 'Baker': 20, 'Dog': 15}
我明白
会导致
[('Able', 10), ('Dog', 15), ('Baker', 20), ('Charlie', 20)]`
但这是怎么回事?在
>>> votes = {'Charlie': 20, 'Able': 10, 'Baker': 20, 'Dog': 15}
如果我们在上面的votes字典上应用.items(),我们得到:
votes
.items()
对于每个元组,第一个索引[0]是字符串('Charlie','Able','Baker','Dog'),第二个索引[1]是整数(20,10,20,15)。在
[0]
'Charlie','Able','Baker','Dog'
[1]
20,10,20,15
print(sorted(votes.items(), key = lambda x: x[1]))指示python使用每个元组的第二个索引[1]对(tuples)中的项(tuples)进行排序,作为排序的基础。在
print(sorted(votes.items(), key = lambda x: x[1]))
(tuples)
Python比较每个元组中的每个整数,并返回一个按升序排列每个元组的列表(可以使用reverse=True参数反转),使用每个元组的整数作为key来确定元组的排名
reverse=True
key
如果关键字中有并列项,则按它们在字典中的原始顺序排列。(所以('Charlie', 20)在('Baker', 20)之前,因为在键上有一个20==20的领带,但是在原始的votes字典中,'Charlie', 20)在('Baker', 20)之前)。在
('Charlie', 20)
('Baker', 20)
20==20
Charlie', 20)
输出结果是:
[('Able', 10), ('Dog', 15), ('Charlie', 20), ('Baker', 20)]
我希望这样更容易理解。在
传递给key的函数将给出正在排序的每个项,并返回Python可以按其排序的“键”。因此,如果要按字符串的反向对字符串列表进行排序,可以执行以下操作:
list_of_strings.sort(key=lambda s: s[::-1])
这使您可以指定每个项目排序依据的值,而不必更改项目。这样,您就不必构建一个反转字符串的列表,对其进行排序,然后将它们反转回去。在
在您的例子中,代码是按元组中的第二个项对每个项进行排序,而通常情况下,它将首先按元组中的第一个项排序,然后断开与第二个项的关系。在
key是一个函数,将调用该函数在比较集合的项之前转换它们。传递给key的参数必须是可调用的。在
使用lambda创建一个匿名函数(可调用)。在sorted的情况下,callable只接受一个参数。Python的lambda非常简单。它只能做和返回一件事真的。在
如果我们在上面的
^{pr2}$votes
字典上应用.items()
,我们得到:对于每个元组,第一个索引
[0]
是字符串('Charlie','Able','Baker','Dog'
),第二个索引[1]
是整数(20,10,20,15
)。在print(sorted(votes.items(), key = lambda x: x[1]))
指示python使用每个元组的第二个索引[1]
对(tuples)
中的项(tuples)
进行排序,作为排序的基础。在Python比较每个元组中的每个整数,并返回一个按升序排列每个元组的列表(可以使用
reverse=True
参数反转),使用每个元组的整数作为key
来确定元组的排名如果关键字中有并列项,则按它们在字典中的原始顺序排列。(所以
('Charlie', 20)
在('Baker', 20)
之前,因为在键上有一个20==20
的领带,但是在原始的votes
字典中,'Charlie', 20)
在('Baker', 20)
之前)。在输出结果是:
我希望这样更容易理解。在
传递给
key
的函数将给出正在排序的每个项,并返回Python可以按其排序的“键”。因此,如果要按字符串的反向对字符串列表进行排序,可以执行以下操作:这使您可以指定每个项目排序依据的值,而不必更改项目。这样,您就不必构建一个反转字符串的列表,对其进行排序,然后将它们反转回去。在
^{pr2}$在您的例子中,代码是按元组中的第二个项对每个项进行排序,而通常情况下,它将首先按元组中的第一个项排序,然后断开与第二个项的关系。在
key是一个函数,将调用该函数在比较集合的项之前转换它们。传递给key的参数必须是可调用的。在
使用lambda创建一个匿名函数(可调用)。在sorted的情况下,callable只接受一个参数。Python的lambda非常简单。它只能做和返回一件事真的。在
相关问题 更多 >
编程相关推荐