파이썬 map() 함수
파이썬의 내장 함수 중 하나로, 주어진 함수를 순회 가능한(iterable) 객체의 각 요소에 적용하여 새로운 iterable을 생성하는 함수이다. map 함수는 함수형 프로그래밍의 개념 중 하나로, 요소별 변환을 간단하게 수행할 수 있게 도와준다.
파이썬 map() 함수의 사용 목적
map() 함수의 사용 목적은 주로 다음과 같은 목적으로 사용된다.
- 순회 가능한 객체의 모든 요소에 동일한 함수를 적용하여 새로운 iterable을 생성한다.
- 요소 간 변환이 필요한 경우, 코드를 간결하게 유지하면서 반복적인 작업을 수행한다.
- 루프를 사용하지 않고, 요소 간 일관된 연산을 수행할 수 있다.
파이썬 map() 함수 사용 예제
지금부터는 다양한 예제를 통해 map() 함수를 어떻게 사용하는지 살펴보자.
map() 함수의 기본 구조
위의 예제에서 첫 번째 파라미터로 들어가는 function은 각 요소에 적용할 함수를 지정하기 위함이고 두 번째 파라미터인 iterable은 함수를 적용할 순회 가능한 객체(리스트, 튜플, 문자열 등)를 지정한다.
리스트 요소의 제곱
map() 함수에서 람다를 사용하여 numbers 리스트의 각 요소를 제곱하여 새로운 리스트를 생성한다.
문자열 길이 계산
map() 함수를 사용하여 각 단어의 길이를 계산하여 새로운 리스트를 생성한다.
대문자 변환
map() 함수를 사용하여 각 문자열을 대문자로 변환하여 새로운 리스트를 생성한다.
두 리스트 합 구하기
map() 함수에 두 개의 iterable을 전달하면, 람다 함수는 각 iterable에서 동일한 위치에 있는 요소들을 인수로 받아 실행된다. 따라서 위의 코드에서 람다 함수에는 x와 y 두 개의 인수가 필요하며, map() 함수는 numbers1 및 numbers2의 각 요소를 한 쌍씩 가져와 람다 함수에 전달한다. 만약 람다 함수에서 x와 y와 같이 두 개의 매개변수를 정의하고, map() 함수에 하나의 iterable만을 전달하게 될 경우 오류가 발생한다는 점을 기억하자.
리스트 안에 요소 형변환
map 함수를 사용하여 리스트 안에 있는 요소를 다른 데이터형으로 형변환 할 수 도 있다. 예를 들어, 정수형 리스트를 문자열로 변환하려면 map 함수를 호출하고 변환 함수를 사용하면 된다.
하지만 map 함수를 이용하여 형변환을 할 때 주의할 점은 리스트 안에 있는 요소가 변환하려고 하는 데이터형으로 형변환이 불가능한 요소가 1개라도 있으면 안된다. 예를 들어 문자열 리스트를 정수형 리스트로 형변환 하려고 할 때 리스트 안에 'a'와 같이 숫자로 형변환 할 수 없는 요소가 1개라도 있다면 에러를 발생시킨다.
'a'는 숫자형으로 형변환 될 수 없으므로 에러가 발생하는걸 확인할 수 있다.
읽어주셔서 감사합니다.