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])
Далее возвращает следующий элемент из итератора.В случае повторяемого объекта, подобного списку, он заканчивается первым элементом.
Но оснований для создания списка нет, поэтому вместо этого мы можем использовать выражение генератора:1012 * Также обратите внимание, что если выражение генератора пусто, это приведет к исключению: StopIteration
.Вы можете решить эту ситуацию.Или вы можете добавить по умолчанию
a = next((i for i in userInput if i in wordsTask), 42)