按Python中的表达式对列表进行排序

时间:2013-09-12 23:54:26

标签: python sorting

我想用Python中的某个表达式对列表进行排序。

即,按abs(x[0] - x[3])的值对列表进行排序,其中x是子列表。我可以通过将另一个元素附加到列表,按它排序并删除它来实现,但这似乎效率低下。还有更好的方法吗?

1 个答案:

答案 0 :(得分:5)

只需将其作为要排序的关键功能传递:

my_list.sort(key=lambda x: abs(x[0] - x[3]))

例如:

In [1]: my_list = [[1, 2], [3, 7], [4, 6]]

In [2]: my_list.sort(key=lambda x: abs(x[0] - x[1]))

In [3]: my_list
Out[3]: [[1, 2], [4, 6], [3, 7]]