我有一本字典和一個列表。我想從字典中刪除出現在列表中的那些值(如果這些值出現在字典中)。這些元素可以多次出現在字典中。刪除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