Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬에서 튜플을 첫 번째 요소 기준으로 그룹화하는 방법

파이썬에서는 collections 모듈의 defaultdict를 활용하면 튜플 리스트를 첫 번째 요소를 기준으로 손쉽게 그룹화할 수 있습니다. 일반 딕셔너리와 달리 defaultdict는 존재하지 않는 키에 접근할 때 자동으로 기본값(여기서는 빈 리스트)을 생성해 주기 때문에 그룹화 작업에 특히 유용합니다.

예제

먼저 그룹화할 튜플 리스트를 준비합니다.

lst = [
    (1, 'Hello', 'World', 112),
    (2, 'Hello', 'People', 42),
    (2, 'Hi', 'World', 200)
]

defaultdict(list) 객체를 만든 뒤, 언패킹(k, *v)을 이용해 각 튜플의 첫 번째 요소는 키로, 나머지 요소들은 해당 키의 리스트에 추가합니다.

from collections import defaultdict

d = defaultdict(list)
for k, *v in lst:
    d[k].append(v)
print(d)

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

defaultdict(<class 'list'>, {1: [['Hello', 'World', 112]], 2: [['Hello', 'People', 42], ['Hi', 'World', 200]]})

첫 번째 요소가 같은 튜플들이 하나의 키 아래에 묶인 것을 확인할 수 있습니다. 예를 들어 첫 번째 요소가 2인 두 개의 튜플이 하나의 그룹으로 합쳐졌습니다.

결과를 다시 튜플로 변환하기

그룹화된 상태를 유지하면서 결과를 튜플 형태로 되돌리고 싶다면 tuple(d.items()) 메서드를 사용하면 됩니다.

예제

print(tuple(d.items()))

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

((1, [['Hello', 'World', 112]]), (2, [['Hello', 'People', 42], ['Hi', 'World', 200]]))

이처럼 defaultdict를 사용하면 별도의 조건문 없이 간결한 코드로 데이터를 그룹화할 수 있으며, 필요에 따라 딕셔너리나 튜플 등 원하는 자료형으로 자유롭게 변환하여 활용할 수 있습니다.