[python] functools 모듈 reduce() 함수
#reduce() 함수
#여러 개의 데이터를 대상으로 주로 누적 집계를 내기 위해 사용
#기본 문법 = > reduce(집계 함수, 순회 가능한 데이터[, 초기값])
#=>집계 함수는 두개의 인자를 받아야함
#=>첫번째 인자는 누적자, 두번째 인자는 현재값
from functools import reduce
#user 5명의 데이터 생성
users = [{'mail': '[email protected]', 'name': 'Brett Holland', 'sex': 'M', 'age': 73},
{'mail': '[email protected]', 'name': 'Madison Martinez', 'sex': 'F', 'age': 29},
{'mail': '[email protected]', 'name': 'Michael Jenkins', 'sex': 'M', 'age': 51},
{'mail': '[email protected]', 'name': 'Karen Rodriguez', 'sex': 'F', 'age': 32},
{'mail': '[email protected]', 'name': 'Amber Rhodes', 'sex': 'F', 'age': 42}]
#5명의 user들 나이의 합
print(reduce(lambda acc, cur: acc + cur["age"], users, 0))
#227
#5명의 user들 이메일 목록
print(reduce(lambda acc, cur: acc + [cur["mail"]], users, []))
#['[email protected]', '[email protected]', '[email protected]', '[email protected]', '[email protected]']
#5명의 user들을 성별로 분류하기
#가독성을 위해 lambda함수를 사용하지 않고, 따로 함수를 정의함
def names_by_sex(acc, cur):
sex = cur['sex']
if sex not in acc:
acc[sex] = []
acc[sex].append(cur['name'])
return acc
print(reduce(names_by_sex, users, {}))
#{'M': ['Brett Holland', 'Michael Jenkins'], 'F': ['Madison Martinez', 'Karen Rodriguez', 'Amber Rhodes']}
Author And Source
이 문제에 관하여([python] functools 모듈 reduce() 함수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@himinhee/python-functools-모듈-reduce-함수저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)