У меня следующий дикт:
d = {'Z':1,'A':2,'C':3}
Я хочу вернуть все ключи, которых нет в ['A','B']
['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 ожидает строку, а не список.
[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'])]