[파이썬] 파이썬 map() 함수

미음제

·

2021. 8. 9. 21:06

map() 함수

 

파이썬에서 map 함수는

리스트의 요소를 지정된 함수로 처리를 하는 함수이다.

 

map() 함수는 map 함수에 사용되는 리스트를

변경하지 않고 새로운 리스트를 생성한다.

 

map 함수 사용법

 

map(함수, 반복 가능한 객체)

 

 

map 함수의 반환 값은 map 객체라서

자료형을 list 혹은 tuple로 변환해서 사용해야 한다.

 

ex)

a = [6,10,12]

x = map(str,a)

print(x)

해당 코드를 실행하면

다음과 같은 결과가 나온다.

 

 

따라서 

map 함수를 통해 얻은 map 객체 x는

list, tuple로 변형해 사용해야 한다.

 

a = [6,10,12]

x = list(map(str,a))

print(x)

코드를 실행해 보면 정수형이 담긴 리스트가

문자열이 담긴 리스트로 바뀐 것을 확인할 수 있다.

 

 

함수가 동작하는 방식은 다음과 같다.

 

두 번째 인자 값으로 들어온 반복 가능한 객체를

첫 번째 인자로 들어온 함수에 집어넣어

함수를 수행하는 것이다.

 

[6, 10, 12]라는 객체가 들어왔고,

str() 함수를 통해

해당 정수가 문자열로 변경된 것이다.

 

첫 번째 인자의 함수에는 다양한 함수를 적용할 수 있다.

반올림해주는 round(),

올림을 해주는 ceil()

제곱을 해주는 pow()

정수형으로 변환하는 int() 등.

 

또한 람다 함수도 적용 가능하다.

 

map()과 람다 함수

numbers = [6,10,12,2]

numbers = sorted(list(map(str, numbers)), key=lambda x:x*3, reverse=True)

print(numbers)

 

우선 map() 함수를 통해

numbers의 리스트를 모두 문자열로 변경해 주었다.

 

그리고 lambda를 통해 해당 리스트를 정렬해주었다.

 

각 배열을 문자열로 변경하고

문자열 곱하기를 해준 뒤

내림차순으로 정렬을 한 것이다.

 

해당 결과는 다음과 같다.

 

 

 

반응형