중첩 목록을 병합하는 기존 솔루션이 [[[1, 2, 3], [와 같은 구조에서는 실패한다고 언급하셨습니다. 4, 5]], 6]. 이 쿼리는 특히 반복자를 사용하는 대체 접근 방식의 타당성을 탐구합니다.
제안된 접근 방식:
제안 솔루션에는 생성기 기능을 활용하여 평면화 프로세스를 단순화하고 성능을 향상시키는 것이 포함됩니다. .
파이썬 2 구현:
from collections import Iterable def flatten(xs): for x in xs: if isinstance(x, Iterable) and not isinstance(x, basestring): for item in flatten(x): yield item else: yield x
Python 3 구현:
from collections.abc import Iterable def flatten(xs): for x in xs: if isinstance(x, Iterable) and not isinstance(x, (str, bytes)): yield from flatten(x) else: yield x
반복자의 장점:
결론:
반복자를 활용하여 제안된 접근 방식은 불규칙한 목록을 평면화하는 효과적이고 효율적인 방법을 제공합니다. 다른 방법과 비교하여 임의의 중첩 깊이가 있는 사례를 해결하고 재귀 또는 수동 병합 기술의 단점을 방지합니다.
위 내용은 Python에서 반복자가 불규칙하게 중첩된 목록을 어떻게 효율적으로 평면화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!