컴퓨터 사이언스 (CS)/자료구조 및 알고리즘

05. map 에러 해결 방법

한소희DE 2021. 6. 2. 09:08

 

목차

Map

Map 에러발생


 

 

01. Map

Map은 파이썬의 내장함수로, 리스트의 요소를 지정된 함수로 처리해주는 함수다.

 

이는 매우 자주 사용되며, 예시는 아래와 같다.

그런데, 사실 내가 map을 설명하는 이유는 아래 에러설명을 위해서다. (내가 자주 까먹기 때문에...!)예시(아래)와 같이 코드를 작성하면 TypeError가 발생한다.


 

02. Map 에러발생

 

⚠️ TypeError: map() must have at least two arguments.

 

 

2-1. 에러발생코드

 

def solution(num): 
 	num_square = list(map(lambda x: x*x, num) ) 
    print(num_square) 
    answer=[] 
    
    for i in num_square: 
    	if i % 2 == 0: 
        answer.append("짝수") 
        
        else: answer.append("홀수") 
        print(answer) 
        
# 입력예시: 1,2,3,4,5 
num = map(input().split(',') )
solution(num)

 

 

2-2. 에러 원인 및 해결방법

 

원인은 바로, map의 성질 때문이다.
map으로 처리된 리스트 값들은 default 값으로 str의 데이터타입으로 처리된다. 하지만 이 코드에서는 데이터타입이 int 여야 한다. 따라서 아래처럼 int 라고 반드시 지정해주어야 오류가 발생하지 않는다.

 

2-3. 에러 해결 코드

 

 def solution(num): 
 	num_square = list(map(lambda x: x*x, num) ) 
    print(num_square) 
    answer=[] 
    
    for i in num_square: 
    	if i % 2 == 0: 
        answer.append("짝수") 
        
        else: answer.append("홀수") 
        print(answer) 
        
 # 입력예시: 1,2,3,4,5 
 num = map(int, input().split(',') ) 
 solution(num)