在Python中,如果新列表中存在,则从字典中删除
假设我有一个字典,里面有很多值。然后我创建了一个列表。如果这个列表中的任何值在字典里找到了,不管它是字典的键还是索引,我该怎么删除整个值呢?
举个例子:
dictionary = {1:3,4:5}
list = [1]
...
dictionary = {4:5}
我该怎么做才能不创建一个新的字典呢?
9 个回答
2
这里有一个一行代码可以做到这一点:
[dictionary.pop(x) for x in list if x in dictionary.keys()]
4
这有点复杂,因为你提到的“值”的要求:
>>> dic = {1: 3, 4: 5}
>>> ls = set([1])
>>> dels = []
>>> for k, v in dic.items():
if k in ls or v in ls:
dels.append(k)
>>> for i in dels:
del dic[i]
>>> dic
{4: 5}
7
for key, value in list(dic.items()):
if key in lst or value in lst:
del dic[key]
不需要单独创建一个列表或字典。
我理解“是否是一个键或索引”是指“是否是字典中的一个键或一个值”。