我有两个数据结构。我想从第一个字典中取出数值,并用这些数值替换第二个字典中的值。
第一个列表是
a = {'gender':['m', 'f', 'f'], 'age':['old', 'old', 'young']}
第二个词是
b = {'gender':{'m':0.9, 'f':0.1}, 'age':{'old':0.4, 'young':0.6}}
我希望最终的词典看起来像这样:
{'gender':['0.9', '0.1', '0.1'], 'age':['0.4', '0.4', '0.6']}
答案 0 :(得分:3)
基本上,您需要遍历第一个字典中的项目,然后对于元素列表中的每个项目,从第二个字典中获取相应的值。你可以使用字典和列表理解的结合很好地完成这个任务:
>>> a = {'gender': ['m', 'f', 'f'], 'age': ['old', 'old', 'young']}
>>> b = {'gender': {'m': 0.9, 'f': 0.1}, 'age': {'old': 0.4, 'young': 0.6}}
>>> {k: [b[k][x] for x in v] for k, v in a.items()}
{'age': [0.4, 0.4, 0.6], 'gender': [0.9, 0.1, 0.1]}