[Python] map함수

멍게장·2022년 11월 14일
0

map 함수란?

사용용도

1) 리스트 요소에 값을 더해주거나 곱하고 싶을 때 for문을 사용해 일일이 계산 후 append 할 필요없이 손쉽게 요소하나하나에 계산처리를 해줄 수 있다.
2) 연속적으로 입력받은 값의 손쉬운 형변환을 할 수 있다.

map 함수 형식

map(function, iterable)
map(적용시킬 함수, 반복가능한 자료형(= 리스트, 튜플 등))

반환값

map 객체로 반환 값이 나오기 때문에 리스트나 튜플 형태로 변환을 시켜줘야 한다.

1. 리스트 요소 값

예시코드

  • for문을 사용하는 방법과 map함수를 사용하는 방법 두가지로 구현해보자.

예시1

  • 리스트의 요소에 2를 곱해보자.
my_list = [1,2,3,4,5]

# 1-1) for문 사용 - 새로운 리스트 생성
result_list = []
for value in my_list:
	result_list.append(value*2)
print(f"result: {result_list}")

# 1-2) for문 사용 - 기존 리스트 값 변경
for idx in range(len(my_list)):
	my_list[idx] = my_list[idx]*2
print(f"result: {my_list}")

# 2) map함수 사용: map함수는 기존 리스트의 값을 변경하지 않고 새로운 리스트를 생성한다.
result_list2 = []
def multiply_by_two(n):
	return n*2
    
result_list2 = list(map(multiply_by_two, my_list))
print(f"result2: {result_list2}")

예시2

  • 리스트의 요소를 전부 정수형으로 바꿔보자.
my_list = [1.1,2.1,3.1,4.1,5.1]

# 1. for문 사용
for idx in range(len(my_list)):
	my_list[idx] = int(my_list[idx])
print(f"result: {my_list}")

# 2. map함수 사용
result_list = list(map(int, my_list))
print(f"result: {result_list}")

map(int, 리스트명) 이렇게 하게 되면 리스트의 요소 하나하나가 모두 int형 즉, 정수형으로 바뀐다.

str과 같은 다른 자료형도 모두 가능하다.



2. 연속적으로 입력받은 값

예시코드

input_list = input().split()
map_object = map(int, a) 
x, y = map_object	

-> input().split()은 문자열 리스트를 결과값으로 가지고 있다.
-> map 객체는 변수 여러개에 저장할 수 있다.

0개의 댓글