단일 수준 결과를 얻기 위해 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!