【发布时间】:2013-04-11 13:37:53
【问题描述】:
我想首先按一个值对列表进行排序,然后再按第二个值排序。是否有捷径可寻?这是一个小例子:
A = [{'name':'john','age':45},
{'name':'andi','age':23},
{'name':'john','age':22},
{'name':'paul','age':35},
{'name':'john','age':21}]
此命令用于按'name'对该列表进行排序:
sorted(A, key = lambda user: user['name'])
但是我怎样才能按第二个值对这个列表进行排序呢?就像这个例子中的'age'。
我想要这样的排序(首先按'name' 排序,然后按'age' 排序):
andi - 23
john - 21
john - 22
john - 45
paul - 35
谢谢!
【问题讨论】:
-
另一方面:python 的排序保证是稳定的,因此你可以简单地通过
sortage然后通过name来获得你的结果通缉。 (请注意,键的顺序是相反的。您首先按第二个键排序,然后按第一个键)。