map(function,iteration)
- 첫 번째 매개변수로는 함수, 두 번째 매개변수로 반복 가능한 자료형(리스트, 튜플 등)이 옵니다.
- map 함수의 반환 값은 map 객체이기 때문에 해당 자료형을 list 혹은 tuple로 변환시켜줘야 합니다.
- 두 번째 인자로 들어온 반복 가능한 자료형을 첫 번째 인자에 들어온 함수에 하나씩 집어넣어서 함수를 수행시킵니다
myList = [1, 2, 3, 4, 5]
def add_one(n):
return n + 1
result = list(map(add_one, myList)) # map반환을 list 로 변환
print(f'result : {result}')
result : [2,3,4,5,6]
위 예시와 같이 리스트 각 요소에 1을 더해서 새로운 리스트로 만들었습니다.
myList = [1, 2, 3, 4, 5]
result = []
for val in myList:
result.append(val + 1)
첫 번째 예시와 두 번째 예시는 같은 작업을 하는 코드입니다.
map 함수를 이용하지 않으면 for문을 이용하여 하나하나 리스트 요소에 접근해서 계산해야 하고 append 해줘야 합니다.
하지만 map 함수를 이용하면 요소에 적용할 함수 하나만 넘겨주면 알아서 리스트를 함수에 적용시키고 map 객체를 반환해줍니다.
result = list(map(int, [1.1, 2.2, 3.3, 4.4, 5.5]))
print(f'map(int, 리스트) : {result}')
map(int,리스트): [1,2,3,4,5]
데이터 타입을 int로 바꿔주는 함수를 넣어준 예제입니다. 첫 번째 인자로 들어간 함수가 int(x)이고 들어간 x의 데이터 타입을 int로 변경해주기 때문에 실수였던 리스트 값들이 정수 타입으로 변환돼서 출력되었습니다.
map함수는 input()과도 함께 자주 쓰입니다.
a=input() #하나의 입력값을 받을 때
a,b=map(int, input().split()) #여러 입력 값을 띄어쓰기를 기준으로 입력 받을 때
nums=list(map(int,input().split())) #띄어쓰기로 구분된 여러개의 숫자 입력 값을 리스트에 넣을 경우
'AI > Python' 카테고리의 다른 글
Lambda Function (0) | 2022.06.17 |
---|---|
[자료구조] Node (0) | 2022.06.14 |
함수(Function) (0) | 2022.05.07 |
Fundamentals (0) | 2022.04.06 |