Python 如何返回不在列表中的键?

Python 如何返回不在列表中的键?,python,string,dictionary,notin,Python,String,Dictionary,Notin,我有以下意见: d = {'Z':1,'A':2,'C':3} 我想返回所有不在['A','B'] 我知道[k代表k in d.keys(),如果'A'不在k]有效,但是[k代表k in d.keys(),如果['A','B']不在k]无效,因为不在需要字符串而不是列表。无需迭代,您可以使用设置差分操作 >>> d = {'Z':1,'A':2,'C':3} >>> l = ['A','B'] >>> set(d) - set(l) {'Z

我有以下意见:

d = {'Z':1,'A':2,'C':3}
我想返回所有不在
['A','B']


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

无需迭代,您可以使用设置差分操作

>>> 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'])]
d.keys()-设置(l)