我试图理清这样的元组的列表:排序在Python中
[('Pineapple', 1), ('Orange', 3), ('Banana', 1), ('Apple', 1), ('Cherry', 2)]
排序列表应该是:
[('Orange', 3), ('Cherry', 2), ('Apple', 1), ('Banana', 1), ('Pineapple', 1)]
所以,在这里一日清单应进行排序基于tuple[1]
降序排列,那么如果tuple
值(tuple[1]
)的比赛像Apple
,Banana
& Pineapple
- 名单应进一步排序基于tuple[0]
在ascendi订单。
我曾尝试可能ways-
top_n.sort(key = operator.itemgetter(1, 0), reverse = True)
# Output: [(Orange, 3), (Cherry, 2), (Pineapple, 1), (Banana, 1), (Apple, 1)]
为"reverse = True"
,菠萝,香蕉,然后...
我终于想出了一个办法:
top_n.sort(key = operator.itemgetter(0), reverse = False)
top_n.sort(key = operator.itemgetter(1), reverse = True)
有没有更好的方式像我的第一种方法一样得到解决方案。我正在努力探索更多关于Python的知识,从而寻求这样的解决方案。
其实你可以简单地做:'top_n.sort(); top_n.sort(key = itemgetter(1),reverse = True)'。因为'reverse = False'是默认值。另外使用'itemgetter(0)'并没有太大意义,因为序列已经被第一个元素排序了,所以你可以简单地避免使用'key'。 – Bakuriu
@Bakuriu:是的!真正。感谢您的建议。 –