operator.itemgetter

김키핑·2026년 6월 3일
post-thumbnail

서론

operator 모듈은 내장 연산자에 대응하는 함수들을 제공해,
파이썬의 변수나 값의 연산 및 처리에 사용된다.

예를 들면, x + yoperator.add(x, y) 로 표현하는 방식으로 사용한다.

이 모듈은 연산자를 함수처럼 다룰 수 있어 sorted() 나 map() 같은 고차 함수의 인자로 활용할 때 특히 유용하다. 대표적인 예시로는 이런 것들이 있다.

  • 객체 비교 연산 (lt, le, eq, ne, ge, gt)
  • 논리 연산 (not, truth, is, is_not)
  • 수학 및 비트 연산 (add, sub, mul, div 등)
  • 시퀀스 연산 (concat, contains, getitem 등)

operator.itemgetter

변수나 값의 연산 및 처리에 사용되는 모듈함수 답게
튜플, 리스트, 딕셔너리 등 두 가지 이상의 요소가 있는 자료형에서 특정 속성(인덱스나 키)을 가져와 연산에 사용한다.

예시

getitem() 메서드를 사용해 딕셔너리, 튜플 등 피연산자에서 특정 인덱스 또는 키의 값을 추출하는 호출 가능한 객체를 반환가능

from operator import itemgetter

# 1. 문자열 + 인덱스 1개
itemgetter(1)('ABCDEFG')          # 결과: 'B'

# 2. 문자열 + 인덱스 여러 개 (튜플 반환)
itemgetter(1, 3, 5)('ABCDEFG')    # 결과: ('B', 'D', 'F')

# 3. 문자열 + 슬라이스 객체 (slice(start, end))
itemgetter(slice(2, None))('ABCDEFG') # 결과: 'CDEFG' (index 2부터 끝까지)

# 4. 딕셔너리 + Key
soldier = dict(rank='captain', name='dotterbart')
itemgetter('rank')(soldier)       # 결과: 'captain'

복합 자료형에서 활용 예시

from operator import itemgetter

inventory = [('apple', 3), ('banana', 2), ('pear', 5), ('orange', 1)]

getcount = itemgetter(1)  # 각 튜플의 1번째 값(숫자)을 추출

list(map(getcount, inventory))  # [3, 2, 5, 1]

# 1번째 값(숫자) 기준 오름차순 정렬
sorted(inventory, key=getcount)
# [('orange', 1), ('banana', 2), ('apple', 3), ('pear', 5)]

참고문서

operator — Standard operators as functions

profile
양치기소녀

0개의 댓글