목록 이해의 독립 반복자
파이썬에서 목록 이해는 여러 반복 루프를 허용합니다. 다음 예를 고려하십시오.
[(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