簡體   English   中英

如何對我在Python 3.3中附加的列表進行排序

[英]How do I sort a list that I have appended to in Python 3.3

我一直絞盡腦汁試圖解決這個問題:

for line in test:
    x = line.split()
    y = int(x[1])
    x.append({"Average":str(y)})
    print(x)

這樣做的是它附加了行平均值:y,作為一個例子,詹姆斯20 30 0 50然后它將打印給用戶James 0 0 0 0 {Average: 0}這是我的問題:我的文本文檔包含多個不同的名字和數字如下:

James 20 0 0 0 0
Harrison 7 0 0 0 0
George 9 0 0 0 0

如果有一個以上的數字超過0,我也計算平均值。當我追加平均值:y時,我想根據它們的'y'對整個列表進行排序,如果它是:

James 20 0 0 0 0 {Average: 20}
Harrison 7 0 0 0 0 {Average: 7}
George 9 0 0 0 0 {Average: 9}
Oliver 10 5 6 0 0 {Average: 7}

它會變成:

Harrison 7 0 0 0 0 {Average: 7}
Oliver 10 5 6 0 0 {Average: 7}
George 9 0 0 0 0 {Average: 9}
James 20 0 0 0 0 {Average: 20}

我無法弄清楚如何執行此操作,因為我逐個追加每一行,所以如果我嘗試使用sort命令對其進行排序則不起作用。 我所做的是追加第一行 - >打印它 - >追加第二行 - >等......我怎么能根據附加的平均值對這個列表進行排序? 感謝您的閱讀和幫助!

經過測試,希望它有效。 您可以使用追加功能獲得更多項目。

test = ["Harrison 20 0 0", "George 40 0 0", "Zohan 30 0 0"]
foo = []
for line in test:
    x = line.split()
    y = int(x[1])
    foo.append({"Name":x[0],"Average":str(y)})
    print(x)
sorted_x = sorted(foo)
print sorted_x

問題是你在循環中打印。 首先整理結果,然后排序,然后打印。

暫無
暫無

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

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