我有一个python字典.只是为了给出上下文,我正在尝试编写自己的简单交叉验证单元.
基本上我想要的是获得除给定键之外的所有值.并且根据输入,它返回字典中的所有值,除了已经给出的值.
因此,如果输入为2和5,那么输出值不具有键2和5的值?
Sam*_*us_ 35
for key, value in your_dict.items():
if key not in your_blacklisted_set:
print value
Run Code Online (Sandbox Code Playgroud)
美丽的是,这个伪代码示例是有效的python代码.
它也可以表示为列表理解:
resultset = [value for key, value in your_dict.items() if key not in your_blacklisted_set]
Run Code Online (Sandbox Code Playgroud)
joe*_*000 12
只为了套装的乐趣
keys = set(dict.keys())
excludes = set([...])
for key in keys.difference(excludes):
print dict[key]
Run Code Online (Sandbox Code Playgroud)
Dar*_*fee 10
keys = ['a', 'b']
a_dict = {'a':1, 'b':2, 'c':3, 'd':4}
[a_dict.pop(key) for key in keys]
Run Code Online (Sandbox Code Playgroud)
弹出要丢弃的密钥后, a_dict 将保留您要使用的密钥。
鉴于字典说
d = {
2: 2, 5: 16, 6: 5,
7: 6, 11: 17, 12: 9,
15: 18, 16: 1, 18: 16,
19: 17, 20: 10
}
Run Code Online (Sandbox Code Playgroud)
然后简单的理解例子将达到你想要的
[v for k,v in d.iteritems() if k not in (2,5)]
Run Code Online (Sandbox Code Playgroud)
此示例列出了不使用键{2,5}的所有值
例如,上述理解的O/P是
[5, 6, 1, 17, 9, 18, 1, 16, 17, 10]
Run Code Online (Sandbox Code Playgroud)
如果您的目标是返回一个新字典,其中包含除一个或几个以外的所有键/值,请使用以下命令:
exclude_keys = ['exclude', 'exclude2']
new_d = {k: d[k] for k in set(list(d.keys())) - set(exclude_keys)}
Run Code Online (Sandbox Code Playgroud)
'exclude'可以用(一个或多个)键替换的地方,应排除在外。