在 Python 3.6.3 中,我有以下字典 D1:
D1 = {0: array([1, 2, 3], dtype=int64), 1: array([0,4], dtype=int64)}
数组中的每个值都是另一个字典 D2 的键的索引:
D2 = {'Jack': 1, 'Mike': 2, 'Tim': 3, 'Paul': 4, 'Tommy': 5}
我正在尝试创建第三个字典,D3,具有与 D1 相同的键,作为值,D2 对应的键到 D1.values() 的索引。
我想要的结果是:
D3 = {0: ['Mike','Tim','Paul'], 1: ['Jack','Tommy']}
我的方法是部分的,因为我很难弄清楚如何告诉 D3 从 D1 获取键和从 D2 获取值.我不太确定 和 。有什么想法吗?
D3 = {key:list(D1.values())[v] for key in D1.keys() and v in D2[v]}
请您参考如下方法:
你可以像这样使用字典理解:
from numpy import array
D1 = {0: array([1, 2, 3]), 1: array([0,4])}
D2 = {'Jack': 1, 'Mike': 2, 'Tim': 3, 'Paul': 4, 'Tommy': 5}
temp = dict(zip(D2.values(), D2.keys())) # inverting key-value pairs
D3 = {k: [temp.get(i+1, 'N\A') for i in v] for k, v in D1.items()}
结果是:
{0: ['Mike', 'Tim', 'Paul'], 1: ['Jack', 'Tommy']}
