[英]Sorting list of dictionaries in order of value of one of the keys in a dict
a=[{'post': 3, 'value': 42}, {'post': 4, 'value': 12}, {'post': 12, 'value': 25}]
我如何將其分類為:
a=[{'post': 3, 'value': 42}, {'post': 12, 'value': 25}, {'post': 4, 'value': 12}]
我的意思是為了與反向價值。
您可以使用key
和reverse
參數:
result = sorted(a, key=lambda d:d["value"], reverse=True)
key
必須是給定列表元素的函數返回應在其上進行排序的值的函數。 在這種情況下,傳遞的函數是一個匿名函數,給定字典返回與鍵"value"
關聯的"value"
。
注意sorted(x)
返回列表的排序副本 。 如果要就地對列表進行排序,則只需調用傳遞相同參數的列表對象的方法sort
。 還要注意, x = sorted(x)
不等同於x.sort()
。
希望即使包含丑陋的“ lambda”怪物,這仍然被認為是合理的Python ... :-)
a=[{'post': 3, 'value': 42}, {'post': 4, 'value': 12}, {'post': 12, 'value': 25}]
a.sort(key=lambda d: -d['value'])
>>> from operator import itemgetter
>>> a= [{'post': 3, 'value': 42}, {'post': 12, 'value': 25}, {'post': 4, 'value': 12}]
>>> sorted(a, key=itemgetter('value'), reverse=True)
[{'post': 3, 'value': 42}, {'post': 12, 'value': 25}, {'post': 4, 'value': 12}]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.