WjExplor Story

[점프 투 파이썬] 05-5 내장함수 map(f, iterable) 본문

Python/Python : Code Study

[점프 투 파이썬] 05-5 내장함수 map(f, iterable)

더블유제이플로어 2025. 9. 17. 12:27

# map(f, iterable) 함수


`map()` 함수는 자료구조가 아니라, 'map 객체'라는 특별한 종류의 **이터레이터(iterator)**를 반환하는 함수입니다.

### `map(f, iterable)` 함수란?

`map` 함수는 **iterable의 모든 요소(element)를 하나씩 꺼내서 함수 `f`에 적용한 후, 그 결과들을 묶어서 반환**하는 역할을 합니다. `for` 반복문을 쓰지 않고도 리스트의 모든 값에 특정 작업을 일괄적으로 처리하고 싶을 때 유용합니다.

- **문법:** `map(적용할_함수, 반복_가능한_자료형)`


### `map`의 특징: 이터레이터(Iterator)


`map`의 가장 큰 특징은 **결괏값을 미리 전부 계산해서 저장해두지 않는다**는 점입니다. 값이 필요할 때(예: `list()`로 변환 시) 그제서야 하나씩 계산해서 값을 만들어 줍니다. 이를 '지연 평가(Lazy Evaluation)'라고 하며, 대용량 데이터 처리 시 메모리를 효율적으로 사용할 수 있습니다.

### 예시 코드

**예시 1: 모든 숫자를 제곱하기**
```python
# 각 숫자를 제곱하는 함수
def square(n):
  return n * 
numbers = [1, 2, 3, 4]

# map 함수를 사용해 각 숫자에 square 함수 적용
# list()로 변환해야 실제 값들을 볼 수 있음
result_list = list(map(square, numbers))
print(result_list)
# 출력: [1, 4, 9, 16]
```

 

**예시 2: `lambda`를 사용해 더 간단하게 만들기**
numbers = [1, 2, 3, 4]

# lambda를 사용해 각 숫자를 2배로 만듦
result_list = list(map(lambda n: n * 2, numbers))
print(result_list)
# 출력: [2, 4, 6, 8]