首页 > 解决方案 > 根据键将项目从字典复制到另一个字典

问题描述

我有一个清单

list_x = ['8', '4', '5', '6', '1']

和一本字典

dict_1 = {'0': {'ID=3': 1, 'ID=7': 1},
 '1': {'ID=7': 2, 'ID=6': 2},
 '2': {'ID=7': 3, 'ID=5': 1},
 '3': {'ID=7': 2, 'ID=1': 1},
 '4': {'ID=3': 3, 'ID=5': 1, 'ID=4': 1},
 '5': {'ID=5': 1, 'ID=2': 3, 'ID=4': 2, 'ID=7': 1, 'ID=8': 1},
 '6': {'ID=0': 5, 'ID=3': 7, 'ID=1': 1},
 '7': {'ID=1': 1, 'ID=8': 1, 'ID=7': 1},
 '8': {'ID=6': 2, 'ID=0': 2, 'ID=2': 2}}

并且我想创建一个新字典 dict_2,其中存储了 dict_1 的所有项目,这些项目具有 list_x 中存在的键。我怎样才能做到这一点?我在使用两个嵌套的 for 循环时遇到了麻烦,因为我可以访问键但我无法复制整个项目。

标签: pythonlistdictionary

解决方案


尝试这样的事情

list_x = ['8', '4', '5', '6', '1']


dict_1 = {'0': {'ID=3': 1, 'ID=7': 1},
 '1': {'ID=7': 2, 'ID=6': 2},
 '2': {'ID=7': 3, 'ID=5': 1},
 '3': {'ID=7': 2, 'ID=1': 1},
 '4': {'ID=3': 3, 'ID=5': 1, 'ID=4': 1},
 '5': {'ID=5': 1, 'ID=2': 3, 'ID=4': 2, 'ID=7': 1, 'ID=8': 1},
 '6': {'ID=0': 5, 'ID=3': 7, 'ID=1': 1},
 '7': {'ID=1': 1, 'ID=8': 1, 'ID=7': 1},
 '8': {'ID=6': 2, 'ID=0': 2, 'ID=2': 2}}
d={k:dict_1.get(k).copy() for k in list_x if k in dict_1}
print(d)

推荐阅读