python - functools

category python 2020. 12. 18. 14:37
728x90
반응형

functools.reduce( function , iterable [ , initializer ] ) 

이터레이터를 왼쪽에서 오른쪽에서 순차적으로 누적하여 적용할때 사용합니다.
예를 들어 x는 누적된 값이고 y는 업데이트 되는 값입니다.

from functools import reduce
reduce(lambda x, y: x+y, [1, 2, 3, 4, 5])

# result
((((1+2)+3)+4)+5) = 15

functools.cmp_to_keyfunctools.cmp_to_key( func ) 

비교 함수를 주요 함수로 사용합니다.
비교 함수는 두 개의 인수를 받아 비교하고, 보다 작으면 음수, 같으면 0,보다 크면 양수를 반환하여 사용합니다.

from functools import cmp_to_key

def sort_value(object1, object2):
    value1 = object1[1]
    value2 = object2[1]

    if value1 > value2:
        return 1
    elif value1 < value2:
        return -1
    else:
        return 0


array = [['a', 2], ['c', 1], ['b', 3]]
sorted(array, key=cmp_to_key(sort_value))

# result
[['c', 1], ['a', 2], ['b', 3]]
728x90
반응형

'python' 카테고리의 다른 글

python - 데코레이터 (Decorator)  (0) 2021.11.08
python - 힙 큐 (heapq)  (0) 2020.12.22
python - startswith, endswith  (0) 2020.12.18
python - Counter  (0) 2020.12.17
python - Anaconda 설치  (0) 2018.01.22