2014-02-09 184 views
0

我有一个字典,如:从列表中删除值

a = {1: {1:2, 3:4}, 2: {4:5, 6:7}} 

与dictionarys列表,例如:

b = [{1:2, 3:4}, {9:10}] 

我怎样才能如果列表b中有任何“a”的值,从我的“a”字典中删除特定项目?

我需要得到这个输出:

a = {2: {4:5, 6:7}} 

谢谢!

回答

0

您可以使用dictionary comprehension

>>> a = {1: {1:2, 3:4}, 2: {4:5, 6:7}} 
>>> b = [{1:2, 3:4}, {9:10}] 
>>> {k:v for k,v in a.items() if v not in b} 
{2: {4: 5, 6: 7}} 
>>> 
0
a = {key: value for key, value in a.items() if value not in b} 

这是一个列表解析相当简单。如果您期待b中的很多项目,则使用设置操作可能会更快:

b_set = {frozenset(d.items()) for d in b} 
a = {key: value for key, value in a.items() 
    if frozenset(value.items()) not in b_set}