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

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

Mary-Kate Olsen
풀어 주다: 2024-12-20 17:56:10
원래의
904명이 탐색했습니다.

How Can I Efficiently Flatten Shallow Lists in Python?

Python에서 Iterable을 사용하여 얕은 목록 평면화

Python에서 각 요소가 자체적으로 반복 가능한 얕은 목록을 평면화하는 것은 문제가 될 수 있습니다. . 이 문서에서는 성능과 코드 명확성을 우선시하면서 이러한 목록을 효과적으로 평면화하는 여러 가지 방법을 살펴봅니다.

접근 방식:

  1. 목록 이해

    중첩 목록 이해를 사용하려고 하면 중첩 루프 내의 정의되지 않은 변수로 인해 NameError 발생:

    [image for image in menuitem for menuitem in list_of_menuitems]
    로그인 후 복사
  2. Lambda 함수를 사용한 감소:

    Reduce를 람다 함수와 함께 활용하면 다음과 같은 이점을 얻을 수 있습니다. 간단한 해결책:

    reduce(list.__add__, map(lambda x: list(x), list_of_menuitems))
    로그인 후 복사

    그러나 이 접근 방식의 가독성이 저하될 수 있습니다. list(x)를 사용했기 때문입니다.

  3. Itertools.chain()

    Itertools.chain()은 효율적이고 우아한 방법을 제공합니다. 얕은 목록을 평면화합니다. Iterable을 단일 Iterable로 원활하게 연결합니다.

    from itertools import chain
    list(chain(*list_of_menuitems))
    로그인 후 복사

    이 접근 방식은 중복 복사본을 방지하고 비슷한 성능을 제공하여 줄일 수 있습니다.

  4. Itertools.chain.from_iterable ()

    명확성을 높이기 위해 itertools.chain.from_iterable() 사용을 고려해보세요:

    chain = itertools.chain.from_iterable([[1,2],[3],[5,89],[],[6]])
    print(list(chain))
    로그인 후 복사

    이것은 연산자 마법을 사용하지 않고 명시적으로 평면화를 표현합니다.

결론:

Itertools.chain() 및 그 변형은 효과적이고 읽기 쉬운 방법을 제공합니다. 얕은 목록을 평탄화하고 성능과 코드 명확성을 우선시합니다. 접근 방식을 선택할 때 특정 사용 사례와 가독성 기본 설정을 고려하세요.

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

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