operator — 함수로서의 표준 연산자

operator — 함수로서의 표준 연산자

operator 모듈은 파이썬의 내장 연산자에 대응하는 함수들을 제공해요. 산술 비교, 시퀀스 연산, 논리 연산 등 대부분의 연산자를 함수 형태로 호출할 수 있어요. 주로 map(), sorted(), itertools 와 함께 키 함수나 고차 함수의 인자로 쓰기 좋아요.

출처: Python documentation

본문

객체 동일성 검사

  • operator.is_none(a)a is None 을 반환해요. 객체 동일성을 검사해요. (버전 3.14에서 추가)
  • operator.is_not_none(a)a is not None 을 반환해요. 객체 동일성을 검사해요. (버전 3.14에서 추가)

수학 및 비트 연산

가장 많은 연산은 수학 및 비트 연산이에요.

  • operator.abs(obj), operator.abs(obj)_obj_ 의 절댓값을 반환해요.
  • operator.add(a, b), operator.add(a, b)_a__b_ 가 숫자일 때 a + b 를 반환해요.
  • operator.and_(a, b), operator.and(a, b)a & b 를 반환해요.

시퀀스 연산

  • operator.contains(a, b), operator.contains(a, b)b in a 검사의 결과를 반환해요. 피연산자 순서가 뒤집혀 있음에 주의하세요.
  • operator.countOf(a, b)_a_ 안에서 _b_ 가 나타나는 횟수를 반환해요.

연산자-함수 매핑 (Mapping Operators to Functions)

연산을 함수로 매핑하는 표는 다음과 같아요.

| 연산(Operation) | 문법(Syntax) | 함수(Function) | | 덧셈 | a + b | add(a, b) | | 연결 | seq1 + seq2 | concat(seq1, seq2) | | 포함 검사 | obj in seq | contains(seq, obj) | | 나눗셈 | a / b | truediv(a, b) | | 나눗셈 | a // b | floordiv(a, b) | | 교집합 (비트 And) | a & b | and_(a, b) | | 배타적 OR / 대칭 차 | a ^ b | xor(a, b) | | 비트 반전 / 보수 | ~ a | invert(a) | | 비트 OR / 합집합 | a \| b | or_(a, b) | | 거듭제곱 | a ** b | pow(a, b) | | 인덱스 할당 | obj[k] = v | setitem(obj, k, v) | | 왼쪽 시프트 | a << b | lshift(a, b) | | 모듈로 | a % b | mod(a, b) | | 곱셈 | a * b | mul(a, b) | | 행렬 곱셈 | a @ b | matmul(a, b) | | 산술 부정 | - a | neg(a) | | 논리 부정 | not a | not_(a) | | 양수 | + a | pos(a) | | 오른쪽 시프트 | a >> b | rshift(a, b) | | 슬라이스 삭제 | del seq[i:j] | delitem(seq, slice(i, j)) | | 뺄셈 | a - b | sub(a, b) | | 참 검사 | obj | truth(obj) | | 순서 | a < b | lt(a, b) | | 순서 | a <= b | le(a, b) |

이처럼 operator 모듈은 연산자를 첫 번째 인자로 함수를 받는 고차 함수(reduce, sorted, groupby 등)에 바로 넘길 수 있어 lambda 를 줄이는 데 유용해요.

더 알아보기 (Learn more)