簡體   English   中英

追加列表時如何排序? Python 3.3

[英]How to sort a list when appending to it? Python 3.3

我最近一直在使用此代碼從另一個問題中回答:

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

我用它對平均值進行排序。 但是,代碼無法對產生結果的平均值進行排序: [{'Average': '2.3333333333333335', 'Name': 'Alex'}] [{'Average': '1.0', 'Name': 'Harry'}] [{'Average': '9.0', 'Name': 'Lick'}]

可以看出,它不是從最高到最低或從最低到最高排序的。 我將如何更改此代碼,使其從最高到最低排序,反之亦然?

謝謝

sorted(foo, key=lambda x:x['Average'])

https://docs.python.org/3/library/functions.html#sorted

您可能更喜歡foo.sort(lambda x:x['Average']) ,它返回None,但是對foo本身進行排序

如果要在排序列表中插入元素,請導入等分

PS如果print sorted_x沒有print sorted_x語法錯誤,則說明您使用的是Python 2

每次更新后對列表進行排序對於小型列表可能是不錯的選擇,但對於較長的列表會浪費資源。

如果您需要在更新列表時自動維護排序順序,請嘗試SortedContainers

暫無
暫無

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

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