0

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

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

4

1 回答 1

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)

于 2013-05-02T10:42:11.520 回答