从两个词典中删除重复的键(Python 3.6)

时间:2018-01-17 08:23:04

标签: python dictionary

我有两本词典。

d1 = {(1,1):1 , (2,1):1 , (2,2):1 , (1,2):1}
d2 = {(1,2):1 , (2,2):1}

我想从d2删除d1的所有元素。因此,如果两个字典中都有重复的KEY,则应从d1中删除该KEY。

newd1 = {(1,1):1 , (2,1):1}

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

你可以这样做:

for key in d2:
    d1.pop(key, None)

答案 1 :(得分:0)

{k:v for k, v in d1.items() if not any(str(k2) in str(k) for k2,v2 in d2.items())}

答案 2 :(得分:0)

您可以使用del从字典中删除密钥:

d1 = {(1,1):1 , (2,1):1 , (2,2):1 , (1,2):1}
d2 = {(1,2):1 , (2,2):1}

for key in d2:
    if key in d1:
        del d1[key]

print(d1)

,结果将是:

{(1, 1): 1, (2, 1): 1}