Верните первый элемент в список, соответствующий условию

У меня есть функция. matchCondition(a) , которое принимает целое число и возвращает True или False.

У меня есть список из 10 целых чисел. Я хочу вернуть первый элемент в списке (в том же порядке, что и исходный список), в котором matchCondition возвращает True.

Как можно питонно.

2 Solutions collect form web for “Верните первый элемент в список, соответствующий условию”

 next(x for x in lst if matchCondition(x)) 

должен работать, но он будет вызывать StopIteration если ни один из элементов в списке не соответствует. Вы можете подавить это, предоставив второй аргумент для next :

 next((x for x in lst if matchCondition(x)), None) 

который вернет None если ничего не соответствует.

Демо-версия:

 >>> next(x for x in range(10) if x == 7) #This is a silly way to write 7 ... 7 >>> next(x for x in range(10) if x == 11) Traceback (most recent call last): File "<stdin>", line 1, in <module> StopIteration >>> next((x for x in range(10) if x == 7), None) 7 >>> print next((x for x in range(10) if x == 11), None) None 

Наконец, только для полноты, если вы хотите, чтобы все элементы, которые соответствуют в списке, вот для чего встроенная функция filter предназначена для:

 all_matching = filter(matchCondition,lst) 

В python2.x это возвращает список, но в python3.x он возвращает итерируемый объект.

Используйте оператор break :

 for x in lis: if matchCondition(x): print x break #condition met now break out of the loop 

теперь x содержит элемент, который вы хотели.

доказательство:

 >>> for x in xrange(10): ....: if x==5: ....: break ....: >>> x >>> 5 
  • Как удалить предупреждения Python 3 для операторов печати в Pycharm при использовании интерпретатора Python 2?
  • Свойство имеет значение INDEX_VALUE, но не ожидается никакого значения
  • Как я могу загрузить все ключи из dict в качестве локальных переменных, лучше aproach?
  • Где я должен поместить файл .pdbrc в окна, чтобы он был глобально видимым?
  • Как написать список строк в файл, добавив новые строки?
  • В каком порядке python отображает словарные ключи?
  • Google App Engine, запуск / остановка непрерывного сценария при нажатии кнопки
  • Можно ли разделить и назначить строку в одном выражении в Python?
  •  
    Interesting Posts for Van-Lav

    Распознавание / сжатие строк строки Python

    Как понять списки выражений в Python

    Почему json-сериализация объектов datetime в python не работает из коробки для объектов datetime

    ImportError: невозможно импортировать имя Session, при использовании Azure SDK

    Список сортировки Python с None в конце

    Цифровой дисплей часов – требуется многопоточность?

    Рассуждение о последовательных точках данных без использования итерации

    Как завершить работу программы после заданного времени в Python

    представляют двоичные деревья поиска в python

    Как подсчитать количество строк в таблице из веб-приложения, используя selenium python webdriver

    Найти начальные и конечные индексы подсписок в списке

    Разбор CSV / табуляции с txt-файлом с Python

    Django admin выбирает порядок, отличный от стандартного заказа модели

    Передача numpy массивов строковых форматов в fortran с использованием f2py

    Получение почтового вложения в файл файла python

    Python - лучший язык программирования в мире.