Как лучше, если хотя бы один из ключей есть в словаре в python? - PullRequest
0 голосов
/ 28 октября 2011

Мне нужно проверить, существует ли хотя бы один из списка ключей в dict, я имею в виду, у меня есть список ключей:

keys = ['key1','key2','key3','key4','key5']
dict_ = {'key1': 1,'key2':2}
# I could do something like
if 'key1' in dict_ or 'key2' in dict_ or 'key3' in dict_:
    print True

Но мне интересно, существует ли более питонический способэто

Ответы [ 2 ]

8 голосов
/ 28 октября 2011

Используйте встроенный в Python any(), он принимает итерацию и возвращает True, если какой-либо из элементов имеет значение true, и замыкает накоротко, когда находит совпадение, как ваши цепные проверки or .

if any(key in dict_ for key in keys):
    # do stuff
3 голосов
/ 28 октября 2011

Вы можете использовать наборы:

In [4]: len(set(dict_.keys()) & set(keys)) > 0
Out[4]: True
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...