我有這個名單是這樣的:通過排序列表列
list1 = [["A",5,2,8,3],["B",9,5,1,5]]
我試圖用第二列排序。我期望list1然後是
[["B",9,5,1,5],["A",5,2,8,3]]
因爲9大於5對嗎?我正在使用
sorted(lis1, key=lambda a : a[1])
但是它沒有對它進行排序;它仍然和以前一樣。爲什麼這不起作用?
我有這個名單是這樣的:通過排序列表列
list1 = [["A",5,2,8,3],["B",9,5,1,5]]
我試圖用第二列排序。我期望list1然後是
[["B",9,5,1,5],["A",5,2,8,3]]
因爲9大於5對嗎?我正在使用
sorted(lis1, key=lambda a : a[1])
但是它沒有對它進行排序;它仍然和以前一樣。爲什麼這不起作用?
你只需要扭轉這種局面:
list1 = [["A",5,2,8,3],["B",9,5,1,5]]
list1 = sorted(list1, key=lambda a : a[1], reverse=True)
print(list1)
# outputs [["B",9,5,1,5],["A",5,2,8,3]]
9> 5,所以說到後來,除非你扭轉。
使用operator.itemgetter()函數:
from operator import itemgetter
list1 = [["A",5,2,8,3],["B",9,5,1,5],["C",1,2,8,3]]
print(sorted(list1, key=itemgetter(1)))
print(sorted(list1, key=itemgetter(1), reverse=True))
輸出:
[['C', 1, 2, 8, 3], ['A', 5, 2, 8, 3], ['B', 9, 5, 1, 5]]
[['B', 9, 5, 1, 5], ['A', 5, 2, 8, 3], ['C', 1, 2, 8, 3]]
它通過默認按升序順序。添加參數'reverse = True'到你的'sorted'函數來產生所需的輸出 – gtlambert