如何 return 不在列表中的键?

How to return keys which are not in a list?

我有以下命令:

d = {'Z':1,'A':2,'C':3}

我想return所有不在['A','B']

中的键

我知道 [k for k in d.keys() if 'A' not in k] 有效,但 [k for k in d.keys() if ['A','B'] not in k] 无效,因为 not in 需要字符串而不是列表。

不需要迭代,可以使用集差操作

>>> d = {'Z':1,'A':2,'C':3}
>>> l = ['A','B']
>>> set(d) - set(l)
{'Z', 'C'}

这取决于您的要求:

# Check for exact key match
d = {'Z':1,'A':2,'C':3}
[k for k in d.keys() if k not in ['A', 'B']]

# Substring match
d = {'Z':1,'A':2,'C':3}
[k for k in d.keys() if not any(s in k for s in ['A', 'B'])]