我有一本字典和一个列表。我想从字典中删除出现在列表中的那些值(如果这些值出现在字典中)。这些元素可以多次出现在字典中。删除Python字典中的某些元素
例如:
my_dic={'key1':['a','b','c'],'key5':['d','a','e']}
。
我想在不调用键(键1和键5)的情况下删除值'a'和'c'。
我该怎么办?
我有一本字典和一个列表。我想从字典中删除出现在列表中的那些值(如果这些值出现在字典中)。这些元素可以多次出现在字典中。删除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'],
'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',)}
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']}
AttributeError:'dict'对象没有属性'itervalues' – 2014-09-21 08:28:29
如果您使用Python 3,请改用'values'。 – Matthias 2014-09-21 10:37:35
是什么意思的东西存在于词典吗?字典是键值映射,而不是简单的容器;目前还不清楚你是在看钥匙还是价值观,还是看什么。 – user2357112 2014-09-21 07:14:40
对不起,我不清楚。我指的是价值观。这些步骤对我来说没有用处,但我想保留它们,以备将来使用。 – 2014-09-21 07:18:06
你能否给我提供你低估这个问题的理由? – 2014-09-21 07:35:48