Python объекты ключевых слов словаря на самом деле похожи на наборы. Вы можете легко сделать из них набор:
>>> a = {'a':1, 'b':2}
>>> b = {'a':2, 'c':3}
>>> a.keys() | b.keys()
{'a', 'b', 'c'}
Теперь все, что вам нужно сделать, это проверить членство в наборе
>>> if x in that_set: ...
Если у вас большое количество словарей, вы можете посмотреть на этот ответ , чтобы узнать, как объединить множество множеств, но имейте в виду, что set.union(dict.keys())
недопустимо ...
>>> set.union(a.keys())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: descriptor 'union' for 'set' objects doesn't apply to a 'dict_keys' object
, поэтому вам нужно сделать что-то вроде
>>> all_keys = set.union(*(set(d) for d in all_dicts))
явное приведение каждого словаря к набору в понимании.
Конечно, вы также можете объединить все словари , чтобы получить аналогичный эффект :
>>> all_dicts = {**dict1, **dict2, **dict3}
>>> "key" in all_dicts
Это все еще очень эффективный способ найти хотя бы одно значение во всех словарях для данного ключа, даже если он все еще не сообщает вам, в каком из словарей был ключ. Для этого, боюсь, вы должны повторить. Прекрасный ответ Азро говорит вам, как это сделать.