수색…


중절 연산자 대신 연산자

모든 중위 연산자 (infix operator)에 대해, 예를 들어 + operator - 함수 ( operator.add for + )가 있습니다.

1 + 1
# Output: 2
from operator import add
add(1, 1)
# Output: 2

주요 문서는 단지 숫자 입력이 허용되는 산술 연산자 것이 가능하다는 것이 비록 :

from operator import mul
mul('a', 10)
# Output: 'aaaaaaaaaa'
mul([3], 3)
# Output: [3, 3, 3]

참고 자료 : 공식 Python 문서에서 연산에서 연산자 함수로 매핑하기 .

Methodcaller

메서드를 명시 적으로 호출하는 lambda 함수 대신

alist = ['wolf', 'sheep', 'duck']
list(filter(lambda x: x.startswith('d'), alist))     # Keep only elements that start with 'd'
# Output: ['duck']

같은 것을하는 operator-function을 사용할 수 있습니다 :

from operator import methodcaller
list(filter(methodcaller('startswith', 'd'), alist)) # Does the same but is faster.
# Output: ['duck']

Itemgetter

항목의 키 - 값 쌍을 itemgetter 값으로 itemgetter :

from itertools import groupby
from operator import itemgetter
adict = {'a': 1, 'b': 5, 'c': 1}

dict((i, dict(v)) for i, v in groupby(adict.items(), itemgetter(1)))
# Output: {1: {'a': 1, 'c': 1}, 5: {'b': 5}}

이것은 다음과 같은 lambda 함수와 동등합니다 (그러나 빠릅니다) :

dict((i, dict(v)) for i, v in groupby(adict.items(), lambda x: x[1]))

또는 두 번째 요소로 튜플 목록을 정렬하려면 먼저 두 번째 요소로 첫 번째 요소를 정렬합니다.

alist_of_tuples = [(5,2), (1,3), (2,2)]
sorted(alist_of_tuples, key=itemgetter(1,0))
# Output: [(2, 2), (5, 2), (1, 3)]


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow