排序列表列表的方法?

时间:2011-03-05 02:19:33

标签: python list sorting

我有一个列表列表(不能是元组,因为我必须动态生成它),它的结构是一个int和一个float的列表列表如下所示:

[[1,1.0345],[2,5.098],[3,4.89],[2,5.97]]

我想让它排序,但我只是设法获得内置排序功能,按列表的第一个元素对其进行排序或不做任何事情,但我需要按列表的第二个元素对它们进行排序,我不想实现自己的排序功能。所以我想要的一个例子是:

[[1,1.0345],[3,4.89],[2,5.098],[2,5.97]]

有人可以告诉我如何使用其中一个内置排序功能来执行此操作吗?

3 个答案:

答案 0 :(得分:20)

传递key参数。

L.sort(key=operator.itemgetter(1))

答案 1 :(得分:12)

>>> l = [[1,1.0345],[2,5.098],[3,4.89],[2,5.97]]
>>> l.sort(key=lambda x: x[1])
>>> l
[[1, 1.0345], [3, 4.8899999999999997], [2, 5.0979999999999999], [2, 5.9699999999999998]]

答案 2 :(得分:3)

如何使用排序的关键参数...

sorted_list = sorted([[1,1.0345],[3,4.89],[2,5.098],[2,5.97]], key=lambda x: x[1])

这告诉python使用每个列表的索引1处的项目作为比较的键来对列表列表进行排序。