這個問題在這里已經有了答案: 按第二項(整數值)對元組串列進行排序 [重復] (9 個回答) 13 小時前關閉。
我目前正在嘗試解決一個涉及串列和排序(即)的問題,當輸入串列(不是普通串列,而是元組串列)時;程式應該根據每個元組的第二個元素以有序(遞增順序)的方式列印出串列。例如:樣本串列:[(2, 5), (1, 2), (4, 4), (2, 3), (2, 1)] 預期結果:[(2, 1), (1, 2) ), (2, 3), (4, 4), (2, 5)] 這是我迄今為止所嘗試的:
def sorting(L):
le=len(L)
G=[]
Lnew=[list(l) for l in L]
for i in range(le):
G.append(Lnew[i][1])
G.sort()
Lnew.remove(Lnew[i][1]) #where the problem is
for k in range(len(G)):
Lnew[k][1]=G[k]
for elt in Lnew:
tuple(elt)
return L
錯誤顯示 "list.remove(x): x not in list" 。在這種情況下我該如何進行?或者有沒有更簡單的方法來解決這個問題?
uj5u.com熱心網友回復:
from operator import itemgetter
lista_of_tuples = sorted(list_of_tuples, key_itemgetter(0))
itemgetter 引數可以是 0,1,2 取決于按哪個排序
uj5u.com熱心網友回復:
def sorting(my_list):
return sorted(my_list, key=lambda x: x[1])
sorting([(2, 5), (1, 2), (4, 4), (2, 3), (2, 1)])
Output: [(2, 1), (1, 2), (2, 3), (4, 4), (2, 5)]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/359768.html
上一篇:在字典元組鍵值上拆分資料框/字典
