说我有一个嵌套词典
dict1 = {'London': {'car_toyota': 288, 'car_audi': 64, 'car_bmw': 426}, 'Paris': {'car_toyota': 48, 'car_audi': 96}, 'New York': {'car_bmw': 48}
并且有正常的字典
dict2 = {'car_toyota': 'Toyota', 'car_audi': 'Audi', 'car_bmw': 'BMW'}
我想用dict2中相应键的值重命名dict1中的键,所以它看起来像
{'London': {'Toyota': 288, 'Audi': 64, 'BMW': 426}, 'Paris': {'Toyota': 48, 'Audi': 96}, 'New York': {'BMW': 48}
我陷入混乱的嵌套循环中,似乎没有给出我想要的东西
for i, j in dict1.iteritems():
for k, v in j.items():
for a, b in dict2.items():
if k == a:
j[k] == j.pop(a)
最好的方法是什么?
答案 0 :(得分:2)
您可以使用嵌套字典理解:
dict1 = {'London': {'car_toyota': 288, 'car_audi': 64, 'car_bmw': 426}, 'Paris': {'car_toyota': 48, 'car_audi': 96}, 'New York': {'car_bmw': 48}}
dict2 = {'car_toyota': 'Toyota', 'car_audi': 'Audi', 'car_bmw': 'BMW'}
final_d = {a:{dict2[c]:d for c, d in b.items()} for a, b in dict1.items()}
输出:
{'Paris': {'Toyota': 48, 'Audi': 96}, 'New York': {'BMW': 48}, 'London': {'Toyota': 288, 'BMW': 426, 'Audi': 64}}