保留除一个键外的所有条目 Python

78 投票
11 回答
109967 浏览
提问于 2025-04-17 09:28

我有一个Python字典。为了让大家明白,我正在尝试写一个简单的交叉验证单元。

简单来说,我想要获取字典中所有的值,除了指定的那些键对应的值。

也就是说,如果输入的是2和5,那么输出的值就不包括键为2和5的那些值,对吧?

11 个回答

17

只是为了好玩,关于集合的内容

keys = set(d.keys())
excludes = set([...])

for key in keys.difference(excludes):
    print d[key]
27

如果你的目标是返回一个新的字典,里面包含所有的键值对,除了一个或几个特定的,可以使用下面的代码:

exclude_keys = ['exclude', 'exclude2']
new_d = {k: d[k] for k in set(list(d.keys())) - set(exclude_keys)}

在这里,'exclude' 可以替换成你想要排除的键的列表。

77
for key, value in your_dict.items():
    if key not in your_blacklisted_set:
        print value

这段伪代码的美妙之处在于,它实际上是有效的Python代码。

它还可以用列表推导式来表示:

resultset = [value for key, value in your_dict.items() if key not in your_blacklisted_set]

撰写回答