>백엔드 개발 >파이썬 튜토리얼 >Python에서 중첩 목록 이해를 평면화하는 방법은 무엇입니까?

Python에서 중첩 목록 이해를 평면화하는 방법은 무엇입니까?

DDD
DDD원래의
2024-11-07 03:47:02894검색

How to Flatten Nested List Comprehensions in Python?

단일 수준 결과를 얻기 위해 List Comprehension을 평면화

내포된 데이터 구조에 직면할 때 프로그래머는 종종 이를 평면화하는 것을 목표로 합니다. 단일 레벨. 이는 각 요소가 목록을 출력하여 목록 목록으로 이어지는 목록 이해를 사용하는 동안 발생합니다. 당면한 질문은 평면화된 목록을 얻기 위한 솔루션을 모색하면서 이 문제를 다루고 있습니다.

평탄화를 위한 중첩 반복

Python의 목록 이해 기능은 복잡한 데이터 변환을 위한 간결한 구문을 제공합니다. . 평면화를 달성하기 위해 단일 목록 이해 내에서 중첩된 반복을 사용할 수 있습니다. 다음 코드는 이 접근 방식을 보여줍니다.

<code class="python">[filename for path in dirs for filename in os.listdir(path)]</code>

이 예에서 'dirs'는 디렉터리 목록이고, 각 디렉터리에 대해 'os.listdir(path)'는 하위 디렉터리 목록을 반환합니다. 중첩된 목록 이해는 두 목록을 반복하여 하위 디렉터리를 평면화된 결과로 누적합니다.

기능적 동등성

중첩된 목록 이해는 일련의 중첩 루프로 표현될 수 있습니다.

<code class="python">filenames = []
for path in dirs:
    for filename in os.listdir(path):
        filenames.append(filename)</code>

두 접근 방식 모두 동일한 결과, 즉 하위 디렉터리 목록을 단순화하는 결과를 얻습니다. 목록 이해는 특히 여러 반복이 포함된 복잡한 변환의 경우 더욱 간결하고 읽기 쉬운 구문을 제공합니다.

위 내용은 Python에서 중첩 목록 이해를 평면화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.