"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > List Comprehension은 종속 반복자를 가질 수 있나요?

List Comprehension은 종속 반복자를 가질 수 있나요?

2024년 12월 21일에 게시됨
검색:339

 Can List Comprehensions Have Dependent Iterators?

목록 이해의 독립 반복자

파이썬에서 목록 이해는 여러 반복 루프를 허용합니다. 다음 예를 고려하십시오.

[(x, y) for x in a for y in b]

여기서 a와 b는 시퀀스입니다. 이 컴프리헨션은 a와 b의 데카르트 곱에서 요소 쌍을 생성합니다.

반복자가 종속될 수 있습니까?

리스트 컴프리헨션의 한 반복자가 다른 반복자를 참조할 수 있습니까? 대답은 '예'이며 다음 코드는 이를 보여줍니다.

[x for x in a for a in b]

이 이해에서는 외부 루프 반복자 a가 반복자가 됩니다. 내부 루프의 경우. 이는 중첩된 목록을 효과적으로 평면화합니다.

중첩된 목록이 있는 경우 a:

a = [[1, 2], [3, 4]]

다음 목록 이해는 이를 단일로 평면화합니다. 목록:

[x for x in a for a in b]

결과:

[1, 2, 3, 4]

생성기를 사용하는 대체 솔루션

제공된 Python 코드에서 텍스트는 문장으로 저장되며 작업은 다음과 같습니다. 단일 단어 목록을 추출합니다. 생성기를 사용하여 이를 달성하는 방법은 다음과 같습니다.

text = (("Hi", "Steve!"), ("What's", "up?"))
gen = (word for sentence in text for word in sentence)

gen 변수는 이제 평면화된 단어 목록을 생성합니다:

for word in gen:
    print(word)

출력:

Hi
Steve!
What's
up?
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3