所有你需要的是:
點
# to change already existing dict
players = {players['player_id']:{key:value for key,value in players.items() if key != 'player_id'}}
# make dict from lists a and b
z = {b[a=='player_id']: {key:value for key,value in zip(a,b) if key !='player_id'}}
# group both
players={**players,**z}
的細節在下面:
首先,你需要將已經作出字典更改爲所需的輸出類型是這樣的:
players = {players['player_id']:{key:value for key,value in players.items() if key != 'player_id'}}
print(players)
將輸出:
{4: {'gyms_visited': [],
'player_name': 'cynthia',
'player_pokemon': {},
'time_played': 30.9}}
那麼你把你的兩個名單a
和b
,並作出一個額外的字典,他們是這樣的:
z = {b[a=='player_id']: {key:value for key,value in zip(a,b) if key !='player_id'}}
print(z)
將輸出:
{2: {'player_name':
'teri', 'time_played': 22.2,
'player_pokemon': {},
'gyms_visited': []}}
和最後,你只要把它們放在同一個字典如下:
players={**players,**z}
print(players)
輸出:
{4: {'gyms_visited': [],
'player_name': 'cynthia',
'player_pokemon': {},
'time_played': 30.9},
2: {'player_name': 'teri',
'time_played': 22.2,
'player_pokemon': {},
'gyms_visited': []}}
請注意如果你想添加更多的元素,你可以在循環中做到這一點。對於爲例考慮這些新名單:
a = ['player_id', 'player_name','time_played', 'player_pokemon', 'gyms_visited']
b = [6, 'new_Name', 66.6, {}, []]
做和以前一樣:你作爲輸出
z = {b[a=='player_id']: {key:value for key,value in zip(a,b) if key !='player_id'}}
players={**players,**z}
:
{4: {'gyms_visited': [],
'player_name': 'cynthia',
'player_pokemon': {},
'time_played': 30.9},
2: {'player_name': 'teri',
'time_played': 22.2,
'player_pokemon': {},
'gyms_visited': []},
6: {'player_name': 'new_Name',
'time_played': 66.6,
'player_pokemon': {},
'gyms_visited': []}}
您可以參考有關merging dicts和**dicts這些鏈接爲了更好的理解。
這裏是內置拉鍊方法的link。
你能澄清你的需求嗎?這有點不清楚 –
我有一個名爲玩家的現有字典,它有變量{'gyms_visited':[], 'player_id':[4], 'player_name':'cynthia', 'player_pokemon':{} , 'time_played':30.9} –
即時通訊設法從列表中添加另一個字典[a],[b] –