регулярный поиск по вложенному словарю и остановка на первом совпадении (python) - PullRequest
0 голосов
/ 13 октября 2018

Я использую вложенный словарь, который содержит различные типы позвоночных.В настоящее время я могу читать вложенный словарь и искать простое предложение по ключевому слову (например, тигр).

Я бы хотел остановить поиск по словарю (цикл), как только будет найдено первое совпадение.

Как мне это сделать?

Пример кода:

vertebrates = {'dict1':{'frog':'amphibian', 'toad':'amphibian', 'salamander':'amphibian','newt':'amphibian'},
           'dict2':{'bear':'mammal','cheetah':'mammal','fox':'mammal', 'mongoose':'mammal','tiger':'mammal'},
           'dict3': {'anteater': 'mammal', 'tiger': 'mammal'}}


sentence = 'I am a tiger'

for dictionaries, values in vertebrates.items():
for pattern, value in values.items():
    animal = re.compile(r'\b{}\b'.format(pattern), re.IGNORECASE|re.MULTILINE)
    match = re.search(animal, sentence)
    if match:
        print (value)
        print (match.group(0))

1 Ответ

0 голосов
/ 13 октября 2018
vertebrates = {'dict1':{'frog':'amphibian', 'toad':'amphibian', 'salamander':'amphibian','newt':'amphibian'},
           'dict2':{'bear':'mammal','cheetah':'mammal','fox':'mammal', 'mongoose':'mammal','tiger':'mammal'},
           'dict3': {'anteater': 'mammal', 'tiger': 'mammal'}}


sentence = 'I am a tiger'

found = False # Initialized found flag as False (match not found)
for dictionaries, values in vertebrates.items():
    for pattern, value in values.items():
        animal = re.compile(r'\b{}\b'.format(pattern), re.IGNORECASE|re.MULTILINE)
        match = re.search(animal, sentence)
        if match is not None:
            print (value)
            print (match.group(0))
            found = True # Set found flag as True if you found a match
            break # exit the loop since match is found

    if found: # If match is found then break the loop
        break
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...