簡體   English   中英

按字典中鍵之一的值的順序對字典列表進行排序

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

我的意思是為了與反向價值。

您可以使用keyreverse參數:

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.

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