복붙노트

[PYTHON] if와 break로 파이썬 목록 이해하기

PYTHON

if와 break로 파이썬 목록 이해하기

이 코드를 목록 이해력으로 변환 할 수 있습니까?

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

나는 그것의 일부를 변환하는 방법을 알아 :

[i for i in userInput if i in wordsTask]

하지만 휴식 시간을 추가하는 방법을 모르겠습니다. 문서 작성은 많은 도움이되지 못했습니다.

어떤 도움을 주시면 감사하겠습니다.

해결법

  1. ==============================

    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])
    

    다음은 반복자에서 다음 항목을 반환합니다. 목록처럼 반복 가능한 경우 첫 번째 항목을 가져온다.

    그러나 실제로 목록을 만들 이유가 없으므로 대신 generator 식을 사용할 수 있습니다.

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

    또한 생성자 표현식이 비어 있으면 예외가 발생합니다. StopIteration. 그 상황을 처리하고 싶을 수도 있습니다. 또는 기본값을 추가 할 수 있습니다.

    a = next((i for i in userInput if i in wordsTask), 42)
    
  2. from https://stackoverflow.com/questions/9014058/creating-a-python-list-comprehension-with-an-if-and-break by cc-by-sa and MIT license