【问题标题】:How to return keys which are not in a list?如何返回不在列表中的键?
【发布时间】:2020-04-29 14:40:09
【问题描述】:
我有以下字典:
d = {'Z':1,'A':2,'C':3}
我想返回所有不在['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 需要字符串而不是列表。
【问题讨论】:
标签:
python
string
dictionary
notin
【解决方案1】:
无需迭代,可以使用集差操作。
>>> d = {'Z':1,'A':2,'C':3}
>>> l = ['A','B']
>>> set(d) - set(l)
{'Z', 'C'}
【解决方案2】:
这取决于您的要求:
# 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'])]