我的数据结构是Python中的元组列表,我希望能够按照元组中包含的值对列表项进行排序。在PHP中,我通常使用usort()创建自己的排序函数。我可以使用Python中的等价物吗?
答案 0 :(得分:7)
为sort()
方法提供key
函数:
>>> my_list = [(1, 2), (3, 4), (2, 1), (3, 2)]
>>> my_list.sort(key=lambda x: x[1])
>>> my_list
[(2, 1), (1, 2), (3, 2), (3, 4)]
>>>
如果您需要获取排序列表,而不是排序到位,请使用built_in sorted()
>>> sorted(my_list, key=lambda x: x[1])
[(2, 1), (1, 2), (3, 2), (3, 4)]
答案 1 :(得分:3)
这样做没有预制功能,但使用operator module functions作为排序的关键功能可以相当容易地完成。如代码示例所示,您可以使用
from operator import itemgetter
tuple_list.sort(key=itemgetter(1))
这将按元组中的索引1元素排序。