我有两个dict
:
a={'a':'A','b':'B'}
b={'a':123,'b':123}
我需要检查dict
b中是否存在键'a'和'b'(例如,在实际代码中为两个元素,它将更多),在dict
a中是否存在。如果是这样,我应该使用dict
a中的值更改dict
b中的键:
预期结果:
b={'A':123, 'B': 123}
我该怎么做?
{a[k] if k in a else k: v for k, v in b.items()}
这是完成的方式:
a={'a':'A','b':'B'}
b={'a':123,'b':123}
c = {}
for key in a.keys():
if key in b.keys():
c.update({a[key]:b[key]})
到目前为止,其他答案都忽略了希望代码执行以下操作的问题:
更改字典中的字典中的键以获取字典a中的值
[我推断,b
中没有替换键的任何数据都应保留。因此,按a
的键创建新词典a
将不起作用。我们需要直接修改c
。一种有趣的方法是通过b
方法,该方法通常与列表相关联,但也适用于字典:
pop()
输出
a = {'a': 'A', 'b': 'B'}
b = {'a': 123, 'b': 124, 'C': 125}
for key in list(b): # need a *copy* of old keys in b
if key in a:
b[a[key]] = b.pop(key) # copy data to new key, remove old key
print(b)