我想通过Python中的某个表达式对列表进行排序.
即,按值列出列表列表abs(x[0] - x[3]),其中x是子列表.我可以通过将另一个元素附加到列表,按它排序并删除它来实现,但这似乎效率低下.有没有更好的办法?
只需将其作为键功能进行排序:
my_list.sort(key=lambda x: abs(x[0] - x[3]))
Run Code Online (Sandbox Code Playgroud)
例如:
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]]
Run Code Online (Sandbox Code Playgroud)