PHP等效于PHP的usort()?

时间:2012-08-07 15:01:47

标签: python sorting

我的数据结构是Python中的元组列表,我希望能够按照元组中包含的值对列表项进行排序。在PHP中,我通常使用usort()创建自己的排序函数。我可以使用Python中的等价物吗?

2 个答案:

答案 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元素排序。