我有一份清单清单:
[[12, 'tall', 'blue', 1],
[2, 'short', 'red', 9],
[4, 'tall', 'blue', 13]]
Run Code Online (Sandbox Code Playgroud)
如果我想按一个元素排序,比如高/短元素,我可以通过s = sorted(s, key = itemgetter(1)).
如果我想作为排序依据两个高大/ short和颜色,我可以为每个元素做排序两次,一次,但有一个更快的方法?
我想说:
student_tuples = [ ('john', 'A', 15),
('peter', 'B', 12),
('dave', 'C', 12)]
Run Code Online (Sandbox Code Playgroud)
我如何将它排序为这样:
student_tuples = [('john', 'A', 15), ('dave', 'C', 12), ('peter', 'B', 12)]
Run Code Online (Sandbox Code Playgroud)
我能想到的是:
from operator import itemgetter
sorted(student_tuples, key=itemgetter(2,0), reverse=True)
Run Code Online (Sandbox Code Playgroud)
但是输出将是:
student_tuples = [('john', 'A', 15), ('peter', 'B', 12), ('dave', 'C', 12)]
Run Code Online (Sandbox Code Playgroud)
那不是我想要的.我怎样才能使用itemgetter或其他更简单的方法呢?