본문 바로가기
프로그래밍언어/파이썬[중급]

[파이썬][중급] Chapter34. operator 모듈과 연산 함수

by about_IT 2025. 5. 24.
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