从Python字典中删除某些元素

从Python字典中删除某些元素,python,Python,我有一本字典和一张单子。我想从字典中删除列表中出现的那些值(如果这些值出现在字典中)。这些元素可以多次出现在字典中 例如: my_dic={'key1':['a','b','c'],'key5':['d','a','e']} 我想在不调用键(键1和键5)的情况下删除值“a”和“c” 我该怎么做呢?我想是这样的 lst = ['val1','val2','val3'] dct = { 'key1': ['val1','val6'], 'key2': ['val2','val45'],

我有一本字典和一张单子。我想从字典中删除列表中出现的那些值(如果这些值出现在字典中)。这些元素可以多次出现在字典中

例如:
my_dic={'key1':['a','b','c'],'key5':['d','a','e']}

我想在不调用键(键1和键5)的情况下删除值“a”和“c”


我该怎么做呢?

我想是这样的

lst = ['val1','val2','val3']
dct = {
   'key1': ['val1','val6'],
   'key2': ['val2','val45'],
   'key3': ['val52','val48']
}

for key in dct.keys():
    vals = dct[key]
    for value in vals:
        if value in lst:
            while value in vals:
                 vals.remove(value)
    dct[key] = vals


print dct >>> {'key3': ('val52', 'val48'), 'key2': ('val45',), 'key1': ('val6',)}

字典里出现的东西意味着什么?字典是键值映射,而不是简单的容器;不清楚您是在查看键、值还是什么。对不起,我不清楚。我指的是价值观。这些键在这一步对我来说没有用处,但我想保留它们,以备将来的步骤使用。你能告诉我你否决这个问题的原因吗?我已经编辑了这个问题,我说我引用了值。不清楚。现在我给你们举个例子。正如你们所看到的,有些用户理解我的问题,他们会帮助我。如果一个值在VAL中出现多次,那么一个值在VAL中只能出现一次。它可以出现在更多的VAL列表中。您是否注意到while使其成为冗余?您可以删除while循环,以便它仅在修改此答案时查看列表,我没有复制并粘贴此代码,但是这个想法对我来说很好。AttributeError:“dict”对象没有属性“itervalues”,如果您使用Python3,请使用
值。
target_dict = {'key1':['a','b','c'],'key5':['d','a','e']}
values_to_detele = ['a', 'c']
In [225]: for val_list in target_dict.itervalues():
    for del_val in  values_to_detele:
        while del_val in val_list:
            val_list.remove(del_val)
   .....:             

In [226]: target_dict
Out[226]: {'key1': ['b'], 'key5': ['d', 'e']}