> 백엔드 개발 > 파이썬 튜토리얼 > Python의 `itertools.groupby()` 함수는 어떻게 지정된 키를 기반으로 반복 가능한 데이터를 효율적으로 그룹화할 수 있습니까?

Python의 `itertools.groupby()` 함수는 어떻게 지정된 키를 기반으로 반복 가능한 데이터를 효율적으로 그룹화할 수 있습니까?

Barbara Streisand
풀어 주다: 2024-12-17 06:57:25
원래의
103명이 탐색했습니다.

How can Python's `itertools.groupby()` function efficiently group iterable data based on a specified key?

itertools.groupby() 이해: Python에서 데이터 그룹화

Intertools.groupby()는 그룹화를 가능하게 하는 강력한 Python 함수입니다. 지정된 키 함수를 기반으로 하는 반복 가능한 요소입니다. 이는 데이터를 논리적 범주로 나누거나 관련 항목 그룹에 대한 작업을 수행해야 할 때 특히 유용할 수 있습니다.

itertools.groupby()를 사용하려면 그룹화할 데이터와 키라는 두 가지 인수를 제공합니다. 그룹화 기준을 결정하는 함수입니다. 키 함수는 데이터의 각 요소를 받아들이고 요소를 그룹화하는 기준이 되는 값을 반환합니다.

주의해야 할 중요한 점 중 하나는 groupby()가 그룹화하기 전에 데이터를 정렬하지 않는다는 것입니다. 그룹을 정렬해야 하는 경우 groupby()를 적용하기 전에 데이터를 직접 정렬해야 할 수도 있습니다.

사용 예

itertools.groupby() 사용법:

from itertools import groupby

# Data to group: a list of tuples representing (fruit, size) pairs
data = [('apple', 'small'), ('banana', 'medium'), ('orange', 'large'),
         ('apple', 'large'), ('banana', 'small'), ('pear', 'small')]

# Define the key function to group by fruit type
key_func = lambda item: item[0]

# Group the data by fruit type
grouped = groupby(data, key_func)
로그인 후 복사

그룹화 후 grouped는 다음의 반복자입니다. (키, 그룹) 쌍. 각 키는 고유한 과일 유형을 나타내며 그룹은 해당 과일 유형에 속하는 원래 튜플의 반복자입니다.

그룹 반복

각 키를 반복하려면 그룹화된 반복자에서 그룹을 사용하면 중첩된 반복자를 사용할 수 있습니다. loop:

for fruit_type, group_iterator in grouped:
    # Iterate over the current group, which contains tuples for the fruit type
    for fruit, size in group_iterator:
        # Process the fruit and size
        print(f'{fruit} is {size}')
로그인 후 복사

대체 접근 방식

어떤 경우에는 groupby()가 가장 효율적인 선택이 아닌 상황에 직면할 수 있습니다. 매우 큰 데이터 세트로 작업하거나 주요 기능이 특히 복잡한 경우 groupby()는 계산 비용이 많이 들 수 있습니다.

다음 대안을 고려하세요.

  • 컬렉션. defaultdict(list): 아직 생성되지 않은 각 키에 대해 새 목록을 자동으로 생성하는 사전입니다. 현재.
  • Pandas DataFrame.groupby(): Pandas 라이브러리에서 제공하는 보다 포괄적인 데이터 그룹화 메커니즘.

추가 리소스

itertools.groupby()에 대한 자세한 내용은 다음을 참조하세요. 리소스:

  • [Python itertools.groupby() 문서](https://docs.python.org/3/library/itertools.html#itertools.groupby)
  • [ Python itertools groupby() 함수 튜토리얼](https://www.datacamp.com/courses/itertools-python-tutorial)

위 내용은 Python의 `itertools.groupby()` 함수는 어떻게 지정된 키를 기반으로 반복 가능한 데이터를 효율적으로 그룹화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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