从字典中删除其键是列表元素的所有元素

时间:2010-11-08 01:35:11

标签: python list dictionary

如何从字典中删除其键是列表元素的所有元素?

7 个答案:

答案 0 :(得分:11)

[注意:这不是直接回答,但考虑到之前的猜测,这个问题看起来像是家庭作业。我想提供帮助,帮助解决问题,同时从中学习]

分解您的问题

  1. 如何从列表中获取元素
  2. 如何删除密钥:字典中的值
  3. 进一步的帮助:

      

    如何在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])