2017-07-24 68 views
0

我的名單上,我所想的是正確的方式排序列表第三個參數

import operator 

my_list = [('green', 'Josef', 22), ('red', 'Marin', 25), ('black', 'Ostoja', 10), ('white', 'Drazen', 11),('purple','Mike',9)] 
print (type(my_list)) 
cpsorted = my_list.sort(key=operator.itemgetter(2)) 
print (cpsorted) 

但我得到了什麼

<class 'list'> 
None 

爲什麼?

+3

'list.sort'沒有返回值(即'None'),它按'到位 –

+0

list'對象克里斯,你需要的是蟒蛇金色徽章。去得到它:) –

回答

3

如果你不想排序到位列表,你可以使用sorted。此外,您可以使用lambda作爲密鑰 - 無需導入任何內容。

my_list = [('green', 'Josef', 22), ('red', 'Marin', 25), ('black', 'Ostoja', 10), ('white', 'Drazen', 11),('purple','Mike',9)] 
print (type(my_list)) 
cpsorted = sorted(my_list, key=lambda tup: tup[2]) 
print (cpsorted) 
3

list.sort就位排序清單。檢查my_list

>>> my_list 
[('purple', 'Mike', 9), ('black', 'Ostoja', 10), ('white', 'Drazen', 11), ('green', 'Josef', 22), ('red', 'Marin', 25)] 
>>> help(list.sort) 
... 
    L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*; 
+0

或者,調用'sorted(my_list)'獲得排序版本的my_list,而不修改'my_list'。 –

相關問題