List Comprehension의 독립 반복자
Python에서 List Comprehension은 여러 반복 루프를 허용합니다. 다음 예를 고려해보세요.
<code class="python">[(x, y) for x in a for y in b]</code>
여기서 a와 b는 시퀀스입니다. 이 컴프리헨션은 a와 b의 데카르트 곱에서 요소 쌍을 생성합니다.
반복자가 종속적일 수 있나요?
리스트 컴프리헨션의 한 반복자가 다른 반복자를 참조할 수 있습니까? 대답은 '예'이며 다음 코드는 이를 보여줍니다.
<code class="python">[x for x in a for a in b]</code>
이 이해에서 외부 루프 반복자 a는 내부 루프의 반복자가 됩니다. 이는 중첩 목록을 효과적으로 평면화합니다.
예
중첩 목록이 있는 경우 a:
<code class="python">a = [[1, 2], [3, 4]]</code>
다음 목록 이해는 이를 평면화합니다. 단일 목록으로:
<code class="python">[x for x in a for a in b]</code>
결과:
[1, 2, 3, 4]
생성기를 사용하는 대체 솔루션
제공된 Python 코드에서 텍스트는 다음과 같습니다. 문장으로 저장되며, 작업은 단일 단어 목록을 추출하는 것입니다. 생성기를 사용하여 이를 달성하는 방법은 다음과 같습니다.
<code class="python">text = (("Hi", "Steve!"), ("What's", "up?")) gen = (word for sentence in text for word in sentence)</code>
이제 gen 변수는 평면화된 단어 목록을 생성합니다.
<code class="python">for word in gen: print(word)</code>
출력:
Hi Steve! What's up?
위 내용은 List Comprehension은 종속 반복자를 가질 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!