我有一个清单清单:
[[12, 'tall', 'blue', 1], [2, 'short', 'red', 9], [4, 'tall', 'blue', 13]]
如果要按一个元素(例如,高/短元素)排序,可以通过进行s = sorted(s, key = itemgetter(1))。
s = sorted(s, key = itemgetter(1))
如果我想作为排序依据两个高大/ short和颜色,我可以为每个元素做排序两次,一次,但有一个更快的方法?
/ short
键可以是返回元组的函数:
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))