[英]How do I sort a list of dictionaries this way?
假設您有一個字典列表,如下所示。
data = [
{
'id':1,
'name':'ABC corporation',
'state': 'WA'
},
{
'id':2,
'name':'ABC corporation',
'state': 'QLD'
},
{
'id':3,
'name':'ABC corporation',
'state': 'WA'
},
{
'id':4,
'name':'ABC corporation',
'state': 'QLD'
},
{
'id':5,
'name':'ABC corporation',
'state': 'WA'
}
]
我希望state == QLD
的所有字典都排在其他字典之前(即必須先給出哪個狀態。所以結果將是:
data = [
{
'id':2,
'name':'ABC corporation',
'state': 'QLD'
},
{
'id':4,
'name':'ABC corporation',
'state': 'QLD'
},
{
'id':1,
'name':'ABC corporation',
'state': 'WA'
},
{
'id':3,
'name':'ABC corporation',
'state': 'WA'
},
{
'id':5,
'name':'ABC corporation',
'state': 'WA'
}
]
注意:不僅僅是正常的排序。 我想根據狀態排序,只有狀態值匹配。 我擔心的是給定的狀態字典數據將在其他狀態的數據之前。
試試這個,它在"QLD"
上返回""
,在排序時它應該始終是 "first" 字符串:
def my_sort(x):
if x["state"] == "QLD":
return ""
else:
return x["state"]
sorted_data = list(sorted(data, key=my_sort))
print(sorted_data)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.