我的清单以及我认为的正确方法
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
为什么?
答案 0 :(得分: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*;
答案 1 :(得分: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)