如何对列表中的列表进行排序?
问题描述:
我想根据第一项如排序我的名单:如何对列表中的列表进行排序?
fruits = \
[['Mango', 6, 5, 8.0],
['Banana', 2.0, 5, 8.9, 7],
['Pineapple', 4, 6.8, 9],
['Apple', 3.9, 6, 7, 2]]
像这样整理出来:
fruits = \
[['Apple', 3.9, 6, 7, 2],
['Banana', 2.0, 5, 8.9, 7],
['Mango', 6, 5, 8.0],
['Pineapple', 4, 6.8, 9]]
我知道我必须使用sort()
功能,但我不知道知道如何以正确的方式使用它来产生我想要的输出。
答
究竟是什么问题? sort()
已经按第一个元素排序。
In [14]: fruits = [["Mango", 6,5,8.0],
["Banana", 2.0,5,8.9,7],
["Pineapple", 4,6.8,9],
["Apple", 3.9,6,7,2]]
In [15]: fruits.sort()
In [16]: fruits
Out[16]:
[['Apple', 3.9, 6, 7, 2],
['Banana', 2.0, 5, 8.9, 7],
['Mango', 6, 5, 8.0],
['Pineapple', 4, 6.8, 9]]
如果你的项目类或变量,你应该实现自己的比较方法(__ge__
,__le__
,__gt__
,__lt__
)相应于您的排序需求。
记住修改了该列表中的地方,如果你想有一个新的排序副本,请使用sorted(fruits)
是名单串的第一要素是什么? – Volatility 2013-05-02 10:36:23
@波动性绝对是 – jamylak 2013-05-02 10:36:36