如何在列表中对列表进行排序?

时间:2013-05-02 10:35:44

标签: python

我想根据第一项来排序我的列表,例如:

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()函数,但我不知道如何以正确的方式使用它来生成我想要的输出。

1 个答案:

答案 0 :(得分:1)

究竟是什么问题? 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__)。

请注意,fruits.sort()会修改列表,如果您需要新的已排序副本,请使用sorted(fruits)