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

问题描述:

我想根据第一项如排序我的名单:如何对列表中的列表进行排序?

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

+2

是名单串的第一要素是什么? – Volatility 2013-05-02 10:36:23

+0

@波动性绝对是 – jamylak 2013-05-02 10:36:36

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

+0

好点...我忘记了第二个 – jamylak 2013-05-02 10:44:01

+0

@fortran我怎么能错过这样的事情?我是一个真正的python noob。感谢你! – 2013-05-02 10:45:23

+0

好吧,它发生了...... Python在大多数情况下都很清晰,但是在这种情况下,像'sorted'或list sort这样的全局函数可能会令人困惑。 – fortran 2013-05-02 10:47:59