根据第三个参数对元组列表进行排序

Sort list of tuples based on third parameter

我的清单和我认为正确的方法

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

为什么?

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*;

如果您不想就地排序列表,您可以使用 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)