我有一个列表列表(不能是元组,因为我必须动态生成它),它的结构是一个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]]
有人可以告诉我如何使用其中一个内置排序功能来执行此操作吗?
答案 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处的项目作为比较的键来对列表列表进行排序。