목록 이해 결과 병합
목록 이해를 사용할 때, 특히 목록을 반환하는 함수로 작업할 때 중첩된 목록을 출력으로 만나는 것이 일반적입니다. . 이러한 중첩 목록을 단순 결과로 변환하려면 다음 기술 구현을 고려하세요.
List Comprehensions의 중첩 반복
Python의 List Comprehensions은 중첩 루프를 지원합니다. 이를 통해 여러 컬렉션을 반복하고 결과를 평면화할 수 있습니다. 예를 들어, 다음 중첩 목록 컴프리헨션은 디렉터리 목록을 하위 디렉터리의 단순 목록으로 변환합니다.
<code class="python">dirs = ['dir1', 'dir2', 'dir3'] filenames = [filename for path in dirs for filename in os.listdir(path)]</code>
이 컴프리헨션은 디렉터리를 반복하여 각 디렉터리 경로에 액세스합니다. 내부 루프 내에서 os.listdir을 사용하여 해당 디렉터리의 파일 이름을 검색합니다. 결과 목록에는 모든 하위 디렉터리가 포함됩니다.
목록 내포 연결
또는 여러 개의 내포 목록을 연결하여 평면화를 달성할 수도 있습니다. 이 접근 방식은 적용할 변환이 여러 개 있는 경우에 적합합니다.
<code class="python">directories = ['dir1', 'dir2', 'dir3'] filenames = [filename for path in directories if os.path.isdir(path) for filename in os.listdir(path)]</code>
이 예에서는 먼저 디렉터리에서 디렉터리가 아닌 항목을 필터링합니다(if 절을 사용하여). 그런 다음 이전 예제와 동일한 os.listdir 작업을 적용합니다. 이러한 컴프리헨션을 연결하면 결과가 평탄화됩니다.
중첩 반복 또는 컴프리헨션 연결을 사용하면 중첩된 목록 컴프리헨션 결과를 효과적으로 평탄화하여 코드를 단순화하고 가독성을 유지할 수 있는 편리한 방법을 제공할 수 있습니다.
위 내용은 Python에서 중첩 목록 이해 결과를 어떻게 평면화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!