map함수 정의

map함수는 리스트의 원소들에게 각각 함수를 적용시키는 함수입니다.

※map 함수는 리스트 뿐만 아니라 딕셔너리, 튜플 등 반복가능한 개체를 인자로 받을 수 있습니다.

map 함수 용도

  1. 리스트 원소들에 각각 함수를 적용시켜 리스트를 변형시킬 때 사용합니다.
  2. map 함수를 이용하면 for문을 이용해 리스트에 함수를 적용할 때 보다 편리합니다.
  3. 숫자로 이루어진 문자열을 정수형 리스트로 바꿀 때 사용합니다.

map 함수 사용법

map(“함수”,”리스트”)

map 함수 예시

예시1: 리스트에 map함수 적용

list1= [1,2,3,4,5,6]
def add3(n):
    return n+3
## list1의 모든 원소에 + 3 적용
list2 = list(map(add3,list1))
print(list2)

실행결과

[4, 5, 6, 7, 8, 9]

map 함수는 map객체로 반환되기 때문에 list 또는 tuple 형태로 변환시켜야 합니다.(예시1 list2 = list(map(add3,list1)) 참고 )

예시2: 문자열을 정수형 리스트로 변환

number = "123456"
##number의 모든 원소를 정수형으로 변환
map_number = list(map(int,number))
print(map_number)

실행결과

[1, 2, 3, 4, 5, 6]

예시3: 문자열에 들어있는 숫자 추출

myname="Hello my name is skytin1004"
result=list(map(int, filter(lambda u: u.isdigit(), myname))) 
print(result)
##isdigit함수: 문자열이 전부 숫자로만 이루어져있으면 True 리턴
##map함수:두번째 인자로 들어온 myname을 쪼개서 하나하나씩 적용
##filter함수:map에의해 쪼개어진 myname의 각 문자가 숫자인지 판별

실행결과

[1, 0, 0, 4]

참고:

isdigit함수 정리하기

fliter함수 정리하기

예시3 과 같은 방법으로 문자열 안에 들어있는 숫자를 추출할 수 있습니다.