所有你需要的是:
点
# 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] –