> 백엔드 개발 > 파이썬 튜토리얼 > Python에서 중첩 목록 이해 결과를 어떻게 평면화할 수 있습니까?

Python에서 중첩 목록 이해 결과를 어떻게 평면화할 수 있습니까?

Barbara Streisand
풀어 주다: 2024-11-09 00:23:02
원래의
807명이 탐색했습니다.

How Can I Flatten Nested List Comprehension Results in Python?

목록 이해 결과 병합

목록 이해를 사용할 때, 특히 목록을 반환하는 함수로 작업할 때 중첩된 목록을 출력으로 만나는 것이 일반적입니다. . 이러한 중첩 목록을 단순 결과로 변환하려면 다음 기술 구현을 고려하세요.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿