Подтвердить что ты не робот

Создание понимания списка Python с помощью if и break

Можно ли превратить этот код в понимание списка?

for i in userInput:
    if i in wordsTask:
        a = i
        break

Я знаю, как его преобразовать:

[i for i in userInput if i in wordsTask]

Но я не знаю, как добавить разрыв, и документация не помогла.

Любая помощь будет оценена.

4b9b3361

Ответ 1

a = next(i for i in userInput if i in wordsTask)

Чтобы немного сломать:

[i for i in userInput if i in wordsTask]

Будет создан список. То, что вы хотите, - это первый элемент в списке. Один из способов сделать это - следующая функция:

next([i for i in userInput if i in wordsTask])

Далее возвращает следующий элемент из итератора. В случае итерации, подобной списку, он получает первый элемент.

Но нет оснований для фактического построения списка, поэтому вместо него можно использовать выражение генератора:

a = next(i for i in userInput if i in wordsTask)

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

a = next((i for i in userInput if i in wordsTask), 42)