>백엔드 개발 >파이썬 튜토리얼 >Python 목록에서 겹치는 쌍을 효율적으로 반복하려면 어떻게 해야 합니까?

Python 목록에서 겹치는 쌍을 효율적으로 반복하려면 어떻게 해야 합니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-14 14:13:10566검색

How Can I Efficiently Iterate Over Overlapping Pairs in Python Lists?

겹치는 쌍을 반복하는 슬라이딩 윈도우 기술

Python에서 목록으로 작업할 때 요소의 겹치는 쌍을 반복해야 하는 경우가 많습니다. . 일반적인 접근 방식은 zip 및 zip[1:]을 사용하여 목록에서 독립적으로 진행되는 두 개의 반복자를 만드는 것입니다. 그러나 동일한 결과를 얻는 더 효율적이거나 관용적인 방법이 있을 수 있습니다.

Itertools 쌍별 함수

Python 3.8에는 itertools 모듈의 쌍별 함수가 도입되었습니다. 이 함수는 반복 가능 항목을 취하고 요소의 겹치는 쌍을 생성하는 반복자를 반환합니다.

Python 3.8 이하 버전의 경우 tee를 사용하여 비슷한 함수를 구현할 수 있습니다.

def pairwise(iterable):
    "s -> (s0, s1), (s1, s2), (s2, s3), ..."
    a, b = itertools.tee(iterable)
    next(b, None)
    return zip(a, b)

이점 pairwise

pairwise 기능은 기존 zip에 비해 몇 가지 장점이 있습니다. 접근 방식:

  • 두 개의 반복자만 생성하는 반면 zip 접근 방식은 세 개를 생성합니다.
  • te 함수의 n 매개변수를 사용하여 모든 크기의 슬라이딩 창을 생성하도록 쉽게 조정할 수 있습니다.
  • 내장된 기능이라 커스텀보다 효율적입니다. 구현.

결론

기존 zip 접근 방식은 기능적이지만 쌍별 기능은 중복되는 요소 쌍을 반복하는 보다 효율적이고 관용적인 방법을 제공합니다. 파이썬. 처리 또는 분석을 위해 데이터의 슬라이딩 창을 생성하는 데 특히 유용합니다.

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

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