相关疑难解决方法(0)

按多个属性对列表进行排序?

我有一份清单清单:

[[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和颜色,我可以为每个元素做排序两次,一次,但有一个更快的方法?

python sorting

398
推荐指数
5
解决办法
25万
查看次数

如何先减少值,然后增加第二个值

我想说:

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或其他更简单的方法呢?

python sorting

6
推荐指数
2
解决办法
2336
查看次数

标签 统计

python ×2

sorting ×2