найти значение в словаре с помощью регулярных выражений в Python - PullRequest
0 голосов
/ 22 мая 2018

Мне нужно найти значение в словаре с помощью регулярных выражений в Python.Когда значение, содержащее это регулярное выражение, не существует, цикл должен возвращать False.Но в моем коде он проверяет только один элемент словаря.

 for value in dictionary.values():
     if re.search(myregex, str(value)):
         print value
         break
     else:
         print("no value found")
         return false

Ответы [ 3 ]

0 голосов
/ 22 мая 2018

Вы просто должны отступить часть else, чтобы она выполнялась только в том случае, если цикл for не break out:

for value in dictionary.values():
    if re.search(myregex, str(value)):
        print value
        break
else:
    print("no value found")
    return false
0 голосов
/ 22 мая 2018

Вам не нужна другая часть.

Пример:

def checkVal(dictionary):
    for value in dictionary.values():
         if re.search(myregex, str(value)):
             return value
    return False
0 голосов
/ 22 мая 2018

Используйте следующее с возвращаемым значением, если не найдено (остановите итерацию):

v = next((value for value in dictionary.values() if re.search(myregex, str(value))), False)
print(v)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...