如何从字典中删除其键是列表元素的所有元素?
答案 0 :(得分:11)
[注意:这不是直接回答,但考虑到之前的猜测,这个问题看起来像是家庭作业。我想提供帮助,帮助解决问题,同时从中学习]
分解您的问题:
进一步的帮助:
如何在python上获取列表的所有元素?
For循环适用于所有序列,list是一个序列。
for key in sequence: print key
如何删除字典中的元素?
使用del(key)方法。
您应该能够将这两项任务结合起来。
答案 1 :(得分:10)
for key in list_:
if key in dict_:
del dict_[key]
答案 2 :(得分:7)
map(dictionary.__delitem__, lst)
答案 3 :(得分:1)
newdict = dict(
(key, value)
for key, value in olddict.iteritems()
if key not in set(list_of_keys)
)
稍后(如2012年末):
keys = set(list_of_keys)
newdict = dict(
(key, value)
for key, value in olddict.iteritems()
if key not in keys
)
或者如果你使用2.7+ python字典理解:
keys = set(list_of_keys)
newdict = {
key: value
for key, value in olddict.iteritems()
if key not in keys
}
或者甚至可能是python 2.7字典理解加上键上的集合交集:
required_keys = set(olddict.keys()) - set(list_of_keys)
return {key: olddict[key] for key in required_keys}
哦,是的,问题很可能就是我在计算所需的密钥时出现了相反的情况。
答案 4 :(得分:1)
d = {'one':1, 'two':2, 'three':3, 'four':4}
l = ['zero', 'two', 'four', 'five']
for k in frozenset(l) & frozenset(d):
del d[k]
答案 5 :(得分:-1)
我对Python一无所知,但我想你可以遍历一个列表并从字典中删除键中的条目?
答案 6 :(得分:-1)
for i in lst:
if i in d.keys():
del(d[i])