Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从具有给定列表的词典中删除项_Python_Dictionary - Fatal编程技术网

Python 从具有给定列表的词典中删除项

Python 从具有给定列表的词典中删除项,python,dictionary,Python,Dictionary,假设我有一本字典,它的键是 d = { 'x1' : (.....) , 'x2' : (......) ,'x3' : (.......) .....} 假设我有一个值列表,其中包含上述字典中的一些键。 比方说 l = ['x2','x3'..] 如何从d中删除l中给出的键 另外,一个for循环应该足够了,但我正在寻找更好的方法。 使用列表理解的东西。你应该使用del: for k in l: del d[k] 此外,最好检查元素是否存在: for k in l: if k

假设我有一本字典,它的键是

d = { 'x1' : (.....) , 'x2' : (......) ,'x3' : (.......) .....}
假设我有一个值列表,其中包含上述字典中的一些键。 比方说

l = ['x2','x3'..]
如何从
d
中删除
l
中给出的键
另外,一个
for
循环应该足够了,但我正在寻找更好的方法。
使用列表理解的东西。

你应该使用
del

for k in l:
   del d[k]
此外,最好检查元素是否存在:

for k in l:
    if k in d:
         del d[k]
但更简单的是,捕捉异常:

for k in l:
    try:
        del d[k]
    except KeyError:
        print 'No such key', k
我建议你使用

如果您想使用理解:

[d.pop(k, None) for k in l]

你为什么要用列表来理解这一点?你没有在这里建立一个列表。使用
del
的简单for循环是非常好的。请不要再往下投票。。。