我有两个DICT列表,解释某人和他们的角色,例如,下面L1显示由D表示的驱动者的角色,L2显示由p表示的包装者的角色:
L1 = [
{'D': 'Jim Jones'},
{'D': 'Tom Jones'},
{'D': 'Bob Jones'}
]
L2 = [
{'P': 'Jim Jones'},
{'P': 'Bob Jones'}
]
我想合并dict列表,以便该键是其角色的合并键,例如:
L3 = [
{'DP': 'Jim Jones'},
{'D': 'Tom Jones'},
{'DP': 'Bob Jones'}
]
顺序无关紧要,这可以是一个新的列表,也可以在适当的地方完成
假设名称是唯一的,您真的希望字典走另一条路(即从名称到角色),因为否则结构就没有意义。如果您这样做,那么您就可以使用一个字典来保存所有数据,而不是每个人都有一个字典列表
这样转换列表非常简单:
现在,您可以根据键轻松地将它们组合在一起:
这给了你:
我建议只保留字典结构,因为它更易于使用,但如果需要,也可以轻松地将其转换回列表格式:
这应该可以完成工作:
下面是它正在做的事情:
步骤1)以名称为键构建一个scratch字典:
步骤2)在L2中的名称上循环,然后在scratch中查找名称并更新其值
步骤3)将scratch字典重新转换为字典列表:
解决问题的关键
其核心思想是名称应该是单个词典中的键。这使得查找和更新变得很容易
希望这有帮助:-)
这一条同样有效:
相关问题 更多 >
编程相关推荐