簡體   English   中英

如何基於子列表中的單個變量對屬於列表的子列表進行排序?

[英]How can I sort sublists that are part of a list based on a single var from the sublist?

我對排序由幾個子列表組成的列表感興趣。

例如,我收到以下輸入:

Rus Dan 264
Pop Alin 263
Stan Darius 304
Pop Tudor 252
Rusu Alin 323
Stroe Mihai 279
Rusu Paul 268

我正在閱讀以下內容:

for i in range(n):
    c=input("").split()
    b.append(c)

我得到的結果是:

[['Rus', 'Dan', '264'], ['Pop', 'Alin', '263'], ['Stan', 'Darius', '304'], ['Pop', 'Tudor', '252'], ['Rusu', 'Alin', '323'], ['Stroe', 'Mihai', '279'], ['Rusu', 'Paul', '268']]

我對按最后一個數字而不是按字符排序的子列表感興趣。

有什么建議嗎?

我試圖拆分子列表,然后使最后一個數字為int並使用.sort()對每個子列表進行排序,但是我遇到了幾個錯誤。

for sublist in n:
    for item in sublist:
        flat_list.append(item)

for i in range(n)
    flat_list[i][2]=int(flat_list[i][2])

b=flat_list.sort()

#not the exact code but something extremely similar

使用自定義鍵排序。 您可以使用匿名函數:

data.sort(key=lambda s: int(s[2]))

嘗試這個 :

data=[['Rus', 'Dan', '264'], ['Pop', 'Alin', '263'], ['Stan', 'Darius', '304'], ['Pop', 'Tudor', '252'], ['Rusu', 'Alin', '323'], ['Stroe', 'Mihai', '279'], ['Rusu', 'Paul', '268']]

print(sorted(data,key=lambda x:int(x[-1])))

輸出:

[['Pop', 'Tudor', '252'], ['Pop', 'Alin', '263'], ['Rus', 'Dan', '264'], ['Rusu', 'Paul', '268'], ['Stroe', 'Mihai', '279'], ['Stan', 'Darius', '304'], ['Rusu', 'Alin', '323']]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM