Как вернуть одно значение из итерации?

Коллеги, подскажите решить задачу.
python 2.6

Имеется отдельный файл с данными.
Имеется переменная со списком строк с данными.
В переменной в списке уже заданы корректные значения.
Читаем файл, перебираем и сравниваем с нашим списком. Если все кол-во совпадений match, то возвращает сообщение ОК. Кол-во требуемое для проверки указываем в входных параметрах при запуске скрипта.
Если найденное совпадение меньше значения n, который указывается как входные данные, то вернуть Alarm либо Ok.
Проблема в том, что алярмы возвращает, но в кол-ве найденных совпадений. Это связано с итерацией. Как вернуть один алярм ? :) Откровенно говоря, мне не нравится какой получился лапша-код.
  • Вопрос задан
  • 278 просмотров
Пригласить эксперта
Ответы на вопрос 2
longclaps
@longclaps
Не обольщайся, это не лапша-код, это говнокод.
def creed(path, list_dir, n):
    list_dir = set(list_dir)  # если list_dir маленький - эту строку можно прибить
    with open(path, 'r') as f:
        print ('OK', 'NO')[sum(s in list_dir for s in f) < n]
Ответ написан
@DVoropaev
Ставлю + к карме на хабре за ответы на вопросы
return
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы