Просто другое решение, не использующее понимание. Эта функция перебирает клавиши k
в Dict1
и пытается добавить Dict2[k]
к новому dict, который возвращается в конце. Я думаю, что попытка-исключающий подход "pythoni c".
def shared_keys(a, b):
"""
returns dict of all KVs in b which are also in a
"""
shared = {}
for k in a.keys():
try:
shared[k] = b[k]
except:
pass
return shared
Dict1 = {'A':3, 'B':5, 'C':2, 'D':5}
Dict2 = {'B':3, 'C':1, 'K':5}
print(shared_keys(Dict1, Dict2))
# >>> {'B': 3, 'C': 1}