728x90
operator
모듈은 파이썬의 내장 연산자를 함수 형태로 제공하여 코드의 가독성과 유연성을 높여줍니다. 특히 정렬, 맵핑, 필터링 등에서 키 함수를 간단하게 정의할 수 있어 실무에서 자주 활용됩니다.
● 기본 연산 함수
operator 모듈은 덧셈, 곱셈, 비교 등 다양한 연산자에 해당하는 함수를 제공합니다.
import operator
print(operator.add(2, 3)) # 5
print(operator.mul(4, 5)) # 20
print(operator.eq(3, 3)) # True
print(operator.ge(3, 2)) # True
이러한 함수는 람다 함수 대신 사용하면 더 읽기 쉬운 코드를 작성할 수 있습니다.
● itemgetter로 키 정렬
itemgetter
는 인덱스나 키를 기준으로 값을 가져오는 키 함수 생성기입니다.
from operator import itemgetter
data = [("Alice", 30), ("Bob", 25), ("Charlie", 35)]
sorted_data = sorted(data, key=itemgetter(1))
print(sorted_data) # [('Bob', 25), ('Alice', 30), ('Charlie', 35)]
딕셔너리의 키, 튜플의 인덱스 등 다양한 객체에 적용 가능합니다.
● attrgetter로 객체 속성 정렬
attrgetter
는 객체의 속성을 기준으로 정렬하거나 필터링할 수 있게 합니다.
from operator import attrgetter
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
people = [Person("Alice", 30), Person("Bob", 20)]
sorted_people = sorted(people, key=attrgetter("age"))
print([(p.name, p.age) for p in sorted_people])
중첩된 속성("address.city"
)도 문자열로 접근 가능합니다.
● methodcaller로 메서드 실행
methodcaller
는 객체에 특정 메서드를 호출하는 함수를 생성합니다.
from operator import methodcaller
to_upper = methodcaller("upper")
print(to_upper("python")) # PYTHON
인자를 넘겨서 메서드를 호출할 수도 있습니다: methodcaller("replace", "a", "b")
● 마무리
operator 모듈은 함수형 프로그래밍을 보조해주는 핵심 도구입니다. 특히 데이터 정렬이나 필터링 작업 시 key 함수를 정의할 때 코드가 더 깔끔해지고 명확해집니다. 람다보다 명시적인 함수가 필요한 경우 적극적으로 활용해보시기 바랍니다.
728x90
'프로그래밍언어 > 파이썬[중급]' 카테고리의 다른 글
[파이썬][중급] Chapter36. calendar 모듈과 날짜 계산 응용 (0) | 2025.05.24 |
---|---|
[파이썬][중급] Chapter35. datetime과 시간 처리 심화 (0) | 2025.05.24 |
[파이썬][중급] Chapter33. functools 주요 기능 살펴보기 (0) | 2025.05.24 |
[파이썬][중급] Chapter32. itertools 고급 패턴 (0) | 2025.05.24 |
[파이썬][중급] Chapter31. 데코레이터 중첩과 인자 전달 (0) | 2025.05.24 |