Python map() 실전예제 20개

map() 함수의 핵심 활용법을 빠르게 익힐 수 있도록 변환, 문자열 처리, 여러 iterable 동시 처리, 입력 처리 예제를 한 번에 정리한 학습용 HTML입니다.

예제 1. 숫자를 제곱하기

리스트의 각 원소에 대해 제곱 연산을 적용합니다.

코드

nums = [1, 2, 3, 4, 5]
result = list(map(lambda x: x**2, nums))
print(result)

예상 결과

[1, 4, 9, 16, 25]

예제 2. 문자열을 정수로 변환하기

문자열 리스트의 각 값을 정수형으로 바꿉니다.

코드

data = ['10', '20', '30']
result = list(map(int, data))
print(result)

예상 결과

[10, 20, 30]

예제 3. 문자열을 실수로 변환하기

문자열 형태의 실수 데이터를 float으로 바꿉니다.

코드

data = ['3.14', '2.71', '1.41']
result = list(map(float, data))
print(result)

예상 결과

[3.14, 2.71, 1.41]

예제 4. 모든 문자열을 대문자로 바꾸기

문자열 메서드를 직접 map에 넣어 각 원소를 대문자로 변환합니다.

코드

words = ['python', 'map', 'lambda']
result = list(map(str.upper, words))
print(result)

예상 결과

['PYTHON', 'MAP', 'LAMBDA']

예제 5. 문자열 길이 구하기

각 문자열의 길이를 구합니다.

코드

words = ['apple', 'kiwi', 'banana']
result = list(map(len, words))
print(result)

예상 결과

[5, 4, 6]

예제 6. 두 리스트의 원소 더하기

여러 iterable을 동시에 받아 같은 위치 원소끼리 연산할 수 있습니다.

코드

a = [1, 2, 3]
b = [10, 20, 30]
result = list(map(lambda x, y: x + y, a, b))
print(result)

예상 결과

[11, 22, 33]

예제 7. 이름과 점수 묶어서 문자열 만들기

두 리스트를 동시에 순회하며 보기 좋은 문자열로 가공합니다.

코드

names = ['민수', '지우', '서연']
scores = [90, 85, 100]
result = list(map(lambda n, s: f'{n}: {s}점', names, scores))
print(result)

예상 결과

['민수: 90점', '지우: 85점', '서연: 100점']

예제 8. 공백 제거하기

양쪽 공백을 제거할 때 자주 쓰입니다.

코드

data = ['  hello  ', '  python', 'map   ']
result = list(map(str.strip, data))
print(result)

예상 결과

['hello', 'python', 'map']

예제 9. 정수를 문자열로 바꾸기

숫자를 문자열로 바꾸어 join 등에 활용할 수 있습니다.

코드

nums = [1, 2, 3, 4]
result = list(map(str, nums))
print(result)

예상 결과

['1', '2', '3', '4']

예제 10. 절댓값 구하기

내장 함수 abs를 이용해 각 숫자의 절댓값을 구합니다.

코드

nums = [-5, -2, 0, 3]
result = list(map(abs, nums))
print(result)

예상 결과

[5, 2, 0, 3]

예제 11. 첫 글자만 추출하기

문자열의 첫 글자만 뽑아낼 수 있습니다.

코드

words = ['star', 'tiger', 'apple']
result = list(map(lambda x: x[0], words))
print(result)

예상 결과

['s', 't', 'a']

예제 12. 불리언 판별 결과 만들기

각 원소를 True/False 값으로 변환합니다.

코드

nums = [0, 1, 2, 0, 5]
result = list(map(bool, nums))
print(result)

예상 결과

[False, True, True, False, True]

예제 13. 섭씨를 화씨로 변환하기

실생활 단위 변환에도 적합합니다.

코드

celsius = [0, 10, 20, 30]
result = list(map(lambda c: c * 9/5 + 32, celsius))
print(result)

예상 결과

[32.0, 50.0, 68.0, 86.0]

예제 14. 리스트 안 튜플의 두 번째 값 추출하기

복합 자료형의 특정 위치 원소를 추출할 수 있습니다.

코드

pairs = [('a', 1), ('b', 2), ('c', 3)]
result = list(map(lambda x: x[1], pairs))
print(result)

예상 결과

[1, 2, 3]

예제 15. 각 수를 이진수 문자열로 변환하기

숫자 표현 방식을 바꿀 때도 유용합니다.

코드

nums = [1, 2, 3, 4]
result = list(map(bin, nums))
print(result)

예상 결과

['0b1', '0b10', '0b11', '0b100']

예제 16. 각 수를 16진수 문자열로 변환하기

진법 변환을 한꺼번에 처리할 수 있습니다.

코드

nums = [10, 15, 255]
result = list(map(hex, nums))
print(result)

예상 결과

['0xa', '0xf', '0xff']

예제 17. 세 리스트의 합 구하기

map은 3개 이상의 iterable도 함께 처리할 수 있습니다.

코드

a = [1, 2, 3]
b = [4, 5, 6]
c = [7, 8, 9]
result = list(map(lambda x, y, z: x + y + z, a, b, c))
print(result)

예상 결과

[12, 15, 18]

예제 18. 문자열 뒤집기

슬라이싱과 함께 사용하면 문자열 가공이 쉬워집니다.

코드

words = ['python', 'map', 'code']
result = list(map(lambda x: x[::-1], words))
print(result)

예상 결과

['nohtyp', 'pam', 'edoc']

예제 19. 입력값 여러 개를 정수로 받기

실전에서 가장 자주 쓰이는 패턴 중 하나입니다.

코드

nums = list(map(int, input('숫자 여러 개 입력: ').split()))
print(nums)

예상 결과

입력: 10 20 30 → [10, 20, 30]

예제 20. enumerate 결과를 문자열로 변환하기

enumerate와 함께 쓰면 번호 붙이기 작업도 간단해집니다.

코드

fruits = ['사과', '바나나', '포도']
result = list(map(lambda x: f'{x[0]}번: {x[1]}', enumerate(fruits, 1)))
print(result)

예상 결과

['1번: 사과', '2번: 바나나', '3번: 포도']
핵심 정리
map(함수, 반복가능객체) 형태로 사용합니다. 결과는 map 객체이므로 실제 값을 보려면 보통 list()로 감싸서 확인합니다. 또한 여러 iterable을 동시에 전달하면 같은 위치의 값들을 함께 처리할 수 있습니다.