我試圖理清這樣的元組的列表:排序在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:是的!真正。感謝您的建議。 –