2013-05-02 111 views
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()功能,但我不知道知道如何以正確的方式使用它來產生我想要的輸出。

+2

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

+0

@波動性絕對是 – jamylak 2013-05-02 10:36:36

回答

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__)相應於您的排序需求。

記住​​修改了該列表中的地方,如果你想有一個新的排序副本,請使用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