我一直在嘗試將字典串列轉換為單個字典,其中每個鍵<city>, <state>為<county>.
簡而言之,我有一個看起來像這樣的串列。
[{'city': 'Normal',
'county': 'Madison County',
'state': 'Alabama'},
{'city': 'Birmingham',
'county': 'Jefferson County',
'state': 'Alabama'},
{'city': 'Montgomery',
'county': 'Montgomery County',
'state': 'Alabama'}]
我想把它改成這樣
{'Normal, Alabama': 'Madison County',
'Birmingham, Alabama': 'Jefferson County',
'Montgomery, Alabama': 'Montgomery County'}
我嘗試了字典理解,但似乎無法一次添加兩個不同的鍵。
所以我知道下面的代碼會給我一個包含鍵值對的城市和縣的字典
new_dict = {x['city']: x['county'] for x in counties}
但是,如何添加兩個不同的鍵?之類的東西是new_dict = {x['city','state']: x['county'] for x in counties}行不通的。
uj5u.com熱心網友回復:
您可以使用 dict 理解:
lst = [{'city': 'Normal',
'county': 'Madison County',
'state': 'Alabama'},
{'city': 'Birmingham',
'county': 'Jefferson County',
'state': 'Alabama'},
{'city': 'Montgomery',
'county': 'Montgomery County',
'state': 'Alabama'}]
output = {f"{dct['city']}, {dct['state']}": dct['county'] for dct in lst}
print(output)
# {'Normal, Alabama': 'Madison County', 'Birmingham, Alabama': 'Jefferson County', 'Montgomery, Alabama': 'Montgomery County'}
在這里,您使用 f-string 組合兩個鍵。
uj5u.com熱心網友回復:
您可以使用字串連接來形成鍵:
data = [{'city': 'Normal',
'county': 'Madison County',
'state': 'Alabama'},
{'city': 'Birmingham',
'county': 'Jefferson County',
'state': 'Alabama'},
{'city': 'Montgomery',
'county': 'Montgomery County',
'state': 'Alabama'}]
new_dict = {x['city'] ", " x['state']: x['county'] for x in data}
print(new_dict)
這輸出:
{'Normal, Alabama': 'Madison County', 'Birmingham, Alabama': 'Jefferson County', 'Montgomery, Alabama': 'Montgomery County'}
uj5u.com熱心網友回復:
為什么不只是一個簡單的 for 回圈?
l = [
{"city": "Normal", "county": "Madison County", "state": "Alabama"},
{"city": "Birmingham", "county": "Jefferson County", "state": "Alabama"},
{"city": "Montgomery", "county": "Montgomery County", "state": "Alabama"},
]
result = dict()
for x in l:
city = x.get("city")
state = x.get("state")
key = f"{city}, {state}"
value = x.get("county")
result[key] = value
print(result)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/436888.html
