> 백엔드 개발 > 파이썬 튜토리얼 > Python에서 중첩 목록을 효율적으로 평면화하려면 어떻게 해야 합니까?

Python에서 중첩 목록을 효율적으로 평면화하려면 어떻게 해야 합니까?

Susan Sarandon
풀어 주다: 2024-12-31 03:09:10
원래의
438명이 탐색했습니다.

How Can I Efficiently Flatten a Nested List in Python?

목록 목록 평면화

문제 설명:

중첩된 목록이 제공되었으며 이를 평면화해야 합니다. 단일 목록. 예를 들어 다음과 같은 목록 목록이 있습니다.

[[1, 2, 3],
[4, 5, 6],
[7],
[8, 9]]
로그인 후 복사

이 구조를 단일 목록으로 평면화하는 것이 목표입니다.

[1, 2, 3, 4, 5, 6, 7, 8, 9]
로그인 후 복사

해결책:

목록 목록을 평면화하려면 중첩 목록 이해를 활용할 수 있습니다. 이 기술에는 각 내부 목록(코드에서 xs로 표시됨)을 반복하고 각 개별 요소(x로 표시됨)를 평면화된 목록( flat_list라는 이름)에 추가하는 작업이 포함됩니다.

flat_list = [
    x
    for xs in xss
    for x in xs
]
로그인 후 복사

이는 다음과 동일합니다. 중첩 루프를 사용한 명시적 반복:

flat_list = []

for xs in xss:
    for x in xs:
        flat_list.append(x)
로그인 후 복사

또는 이 평면화를 수행하는 함수를 만들 수도 있습니다. 작업:

def flatten(xss):
    return [x for xs in xss for x in xs]
로그인 후 복사

이 함수를 사용하면 다음과 같이 입력 목록을 평면화할 수 있습니다.

flat_list = flatten([[1, 2, 3],
                   [4, 5, 6],
                   [7],
                   [8, 9]])
로그인 후 복사

이 접근 방식은 매우 효율적이며 사용 또는 축소와 같은 다른 방법보다 훨씬 더 나은 성능을 발휘합니다. . 목록 이해 기술을 사용하면 각 요소가 평면화된 목록에 한 번만 복사됩니다.

위 내용은 Python에서 중첩 목록을 효율적으로 평면화하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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