我有一个列表列表:
[[12, 'tall', 'blue', 1], [2, 'short', 'red', 9], [4, 'tall', 'blue', 13]]
如果我想按一个元素排序,比如高/短元素,我可以通过s = sorted(s, key = itemgetter(1)).
s = sorted(s, key = itemgetter(1))
如果我想 同时 按高/短和颜色排序,我可以进行两次排序,每个元素一次,但是有更快的方法吗?
键可以是返回元组的函数:
s = sorted(s, key = lambda x: (x[1], x[2]))
或者您可以使用itemgetter(更快并且避免 Python 函数调用)实现相同的目的:
itemgetter
import operator s = sorted(s, key = operator.itemgetter(1, 2))
请注意,您可以在这里使用sort而不是使用sorted然后重新分配:
sort
sorted
s.sort(key = operator.itemgetter(1, 2))