본문 바로가기
파이썬(Python)

Python map이란

by 부캐 활용 IT 2023. 3. 12.
반응형

map() 함수와 lambda 함수

파이썬 내장 함수로 특정 요소를 특정 함수로 매핑(mapping) 시킬때 사용한다.

 

실수가 들어있는 리스트의 값을 정수로 변환하는 프로그램을 가정해보자.
아래와 같이 리스트이 각 요소를 정수화한 후 다시 리스트에 담아야 한다.

num_list=[1.5, 2.3, 3.7, 4.1]
print(type(num_list))
print(num_list)

for i in range(len(num_list)):
  num_list[i] = int(num_list[i])
print(num_list)

 

이것을 map을 사용하면 다음과 같이 간략화 할 수 있다.

num_list=[1.5, 2.3, 3.7, 4.1]
num_list = list(map(int, num_list))
print(num_list)

즉, map함수를 통해 num_list을 int화 매핑한 후 list를 생성하는 것이다.

 

아래의 예제는 numbers 리스트의 모든 요소에 대해 square() 함수 매핑한다.

따라서, 각숫자가 제곱이 될 것이고 이것들이 squared_numbers 리스트에 저장될 것이다.

numbers = [1, 2, 3, 4, 5]

def square(x):
    return x * x

squared_numbers = map(square, numbers)

print(list(squared_numbers))
# 출력 결과: [1, 4, 9, 16, 25]

 

람다(lambda) 함수

이를 람다(lambda) 함수를 사용하면 더 간략화 할 수 있다.
람다 함수는 함수 이름을 정의하지 않도 함수 기능을 한 줄로 작성할 수 있
다.

numbers = [1, 2, 3, 4, 5]

squared_numbers = map(lambda x: x*x, numbers)

print(list(squared_numbers))
# 출력 결과: [1, 4, 9, 16, 25]

 

list1 = [1, 2, 3]
list2 = [4, 5, 6]

result = map(lambda x, y: x + y, list1, list2)

print(list(result))
# 출력 결과: [5, 7, 9]

이것을 람다함수를 사용하지 않으면 원래 다음과 같은 형태일 것이다.

def add(x, y):
    return x + y

list1 = [1, 2, 3]
list2 = [4, 5, 6]

result = map(add, list1, list2)

print(list(result))
# 출력 결과: [5, 7, 9]

 

공백분리 입력 받기

a, b, c  = map(int, input().split())  #공백분리 입력 받기
print(a, b, c)


결과
1   2                     3
1 2 3
반응형

댓글