使用python排序函数?

时间:2013-11-25 01:43:38

标签: python sorting

我正在使用Python排序函数来排序包含许多条目的多维列表。

示例:

sorted_list = sorted(list_not_sorted, key=lambda x:x[1], reverse=True)

有没有办法根据数字的大小对其进行排序?

假设我有以下列表:

[
[John,973],
[Jim,99],
[Jason,912345]
]

使用该代码将按如下方式对其进行排序:

[
[Jim,99],
[John,973]
[Jason,912345],
]

但我希望它像这样排序:

[
[Jason,912345],
[John,973]
[Jim,99],
]

使用此功能有什么办法吗?

为了清晰起见,编辑了问题!

2 个答案:

答案 0 :(得分:1)

如此接近!

sorted_list = sorted(list_not_sorted, key=lambda x:x[1], reverse=True)

x[2]超出界限(因为你的内部列表只有2个项目,这是访问第三个项目)。由于您想要关闭号码,您需要x[1]

>>> data = [['John', 973], ['Jim', 99], ['Jason', 912345]]
>>>
>>> sorted(data, key=lambda x:x[1], reverse=True)
[['Jason', 912345], ['John', 973], ['Jim', 99]]

答案 1 :(得分:-1)

您无需使用sorted创建数据副本。 sort就足够了。

>>> l
[['John', 973], ['Jim', 99], ['Jason', 912345]]
>>> l.sort(key=lambda x:x[1], reverse=True)
>>> l
[['Jason', 912345], ['John', 973], ['Jim', 99]]

如果您需要词典顺序:

>>> l.sort(key=lambda x:str(x[1]), reverse=True)