在Python中,如果新列表中存在,则从字典中删除

2 投票
9 回答
4869 浏览
提问于 2025-04-15 15:44

假设我有一个字典,里面有很多值。然后我创建了一个列表。如果这个列表中的任何值在字典里找到了,不管它是字典的键还是索引,我该怎么删除整个值呢?

举个例子:

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]

不需要单独创建一个列表或字典。

我理解“是否是一个键或索引”是指“是否是字典中的一个键或一个值”。

撰写回答