[英]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.