Recent Posts
Tags
- jupyter python
- javascript array push
- kakao Adfit
- jquery loaded event
- 동기 뜻
- 파이썬 강의 사이트
- javascript example
- 파이썬 배우기
- 파이썬 ide 추천
- 파이썬 강의
- 웹 프로그래밍
- $(document).ready()
- 파이썬 학원
- 프로그래밍
- 카카오 애드핏
- python slicing
- javascript array splice
- 리엑트 삼항연산자
- 프로그래밍 파이썬
- 비동기 코드
- javascript array map
- Python3
- python 다운로드
- python dictionary
- javascript array unshift
- html css
- HTML 기초
- 제이 쿼리
- javascript array method
- 국비 지원 파이썬
- 파이썬 기초
- 웹 프로그래밍 기초
- javascript array add
- javascript date format
- JavaScript
- 자바스크립트
- javascript array shift
- 동기 코드
- jQuery
- HTML
- javascript 날짜 포맷 변환
- 파이썬 사칙연산
- 코딩 파이썬 기초
- 파이썬 온라인 강의
- 파이썬 입문
- python index
- javascript array remove
- 국비 지원 프로그래밍
- 비동기 뜻
- 파이썬 세트
코딩이 즐겁다
[파이썬 입문] reduce 함수 사용법 갓벽 가이드 본문
반응형
- reduce()는 리스트의 요소를 하나로 축소(누적)하는 함수
- lambda와 함께 사용하면 간결하지만, 가독성이 떨어질 수 있음.
- 단순한 합산, 곱셈은 sum(), math.prod() 같은 기본 함수가 더 적절할 수도 있음.
- 복잡한 연산이 필요한 경우 사용하면 유용.
파이썬 reduce() 함수란?
파이썬(Python) reduce() 함수는 반복 가능한(iterable) 객체의 요소들을 누적 연산(aggregation, reduction)하여 단일 값으로 줄이는 함수입니다. 이 함수는 functools 모듈에서 제공되며, 연속적인 이진 연산을 수행하는 데 유용합니다.
기본 구조
from functools import reduce
reduce(함수, iterable[, 초기값])
🌈 매개 변수
- 함수: 두 개의 인자를 받아서 하나의 값을 반환하는 함수.
- iterable: 연산을 수행할 반복 가능한 객체(리스트, 튜플 등).
- 초기값 (옵션): 연산을 시작할 초기값(없으면 iterable의 첫 번째 값 사용).
동작 방식
- 첫 번째와 두 번째 요소를 함수에 적용 → 결과값 생성
- 결과값과 세 번째 요소를 함수에 적용 → 새로운 결과값 생성
- 반복하여 최종 하나의 값으로 축소(reduce)
reduce(lambda x, y: x + y, [1, 2, 3, 4])
1 + 2
3 + 3
6 + 4
결과 : 10
사용 예제
리스트 값 모두 더하기
✅ 예제 코드:
from functools import reduce
numbers = [1, 2, 3, 4, 5]
result = reduce(lambda x, y: x + y, numbers)
print(result) # 출력: 15
lambda x, y: x + y 함수는 두 개의 숫자를 더하는 역할을 함.
리스트 값 모두 곱하기
✅ 예제 코드:
from functools import reduce
numbers = [1, 2, 3, 4, 5]
result = reduce(lambda x, y: x * y, numbers)
print(result) # 출력: 120
1 × 2 × 3 × 4 × 5 = 120
최대값 찾기
✅ 예제 코드:
from functools import reduce
numbers = [3, 7, 2, 8, 5]
max_value = reduce(lambda x, y: x if x > y else y, numbers)
print(max_value) # 출력: 8
리스트의 최대값을 구하는 방식 (비교 연산 사용).
초기값을 사용하는 경우
✅ 예제 코드:
from functools import reduce
numbers = [1, 2, 3, 4]
result = reduce(lambda x, y: x + y, numbers, 10)
print(result) # 출력: 20
10 + (1 + 2 + 3 + 4) = 20
초기값으로 10이 먼저 적용됩니다.
문자열 연결
✅ 예제 코드:
from functools import reduce
words = ["Python", "is", "awesome"]
sentence = reduce(lambda x, y: x + " " + y, words)
print(sentence) # 출력: "Python is awesome"
리스트의 문자열을 공백을 포함하여 연결.
중첩 리스트 평탄화
✅ 예제 코드:
from functools import reduce
nested_list = [[1, 2], [3, 4], [5, 6]]
flat_list = reduce(lambda x, y: x + y, nested_list)
print(flat_list) # 출력: [1, 2, 3, 4, 5, 6]
리스트 내부의 리스트를 하나의 리스트로 합치는 예제.
딕셔너리 값 누적 계산
✅ 예제 코드:
from functools import reduce
scores = {'Alice': 85, 'Bob': 92, 'Charlie': 88}
total_score = reduce(lambda x, y: x + y, scores.values())
print(total_score) # 출력: 265
딕셔너리 값(values())을 모두 더하기.
reduce() vs sum() 비교
numbers = [1, 2, 3, 4, 5]
# reduce 사용
from functools import reduce
result1 = reduce(lambda x, y: x + y, numbers)
# sum 사용 (더 간단)
result2 = sum(numbers)
print(result1) # 15
print(result2) # 15
단순 합산(sum())은 reduce()보다 간단하고 가독성이 좋음.
코즐
파이썬을 배우고 싶은 사람은 누구나 파이썬 학원(국비 지원 파이썬 학원)에 가지 않고도 파이썬 공부를 하면서 실력을 쌓아나갈 수 있다고 생각합니다.
파이썬 온라인 강의 자료를 올리면서 누구나 쉽게 파이썬을 공부하실 수 있도록 최선을 다해서 설명하도록 하겠습니다.
반응형
'Python' 카테고리의 다른 글
[파이썬 입문] count() 메서드 사용법 갓벽 가이드 (91) | 2025.02.26 |
---|---|
[파이썬 기초] switch문을 대체하는 match문 사용법 갓벽 가이드 (45) | 2025.02.22 |
[파이썬 입문] try except 구문 갓벽 가이드 (116) | 2025.02.19 |
[파이썬 입문] 문자열 뒤집기, 문자열 거꾸로 출력 7가지 방법 갓벽 가이드 (127) | 2025.02.18 |
[파이썬 입문] 리스트 정렬 sort 갓벽 가이드 (56) | 2025.02.16 |