JangBaGeum.gif

[Python] 파이썬 기본 문법 - map() ( + 람다 함수) 본문

ETC/알고리즘 & 문법

[Python] 파이썬 기본 문법 - map() ( + 람다 함수)

장바금 2022. 2. 5. 00:20
 

[알고리즘] 파이썬 기본 문법 - 연산자와 숫자 처리 함수 (+ 랜덤 함수)

목차 사칙연산, 제곱, 나머지와 몫 숫자 처리 함수 랜덤 함수 1. 사칙연산, 제곱 나머지와 몫 연산 설명 예 + 더하기 5 + 3 = 8 - 빼기 5 – 3 = 2 * 곱하기 5 * 3 = 15 / 나누기 5 / 3 = 1.6666666666666667 % 나..

jangbageum.tistory.com

 

 map(function, iterable) 

첫 번째 매개변수 👉 함수

두 번째 매개변수 👉 반복 가능한 자료형 (리스트, 튜플)

 

내장 함수 map은 함수와 반복 가능한 자료형을 입력받습니다. map은 입력받은 자료형의 각 요소를 매개변수로 들어온 함수가 수행한 결과를 묶어서 새로운 결과물로 돌려주는 함수입니다.

 

다음은 map 함수를 사용하지 않은 시 사용자 정의 함수를 사용하는 경우의 예시입니다.

two_times함수는 리스트 요소를 입력받아 각 요소에 2를 곱한 결과를 반환합니다.

def two_times(numberList):
    result = [ ]
    for number in numberList:
        result.append(number*2)
    return result

result = two_times([1, 2, 3, 4])
print(result)

# 결과 : [2, 4, 6, 8]

 

map 함수를 사용한다면 아래와 같이 코드를 바꿀 수 있습니다.

def two_times(x): 
	return x*2

result = list(map(two_times, [1, 2, 3, 4]))
print(result)

# 결과 : [2, 4, 6, 8]

📝 map함수는 결과 반환을 리스트가 아닌 map타입으로 리턴하기 때문에 list() 내장함수를 통해 list로 변환해주어야 합니다.

 

map함수의 매개변수로는 꼭 숫자의 리스트뿐만 아니라 아래와 같이 range(), 문자열 등의 형태도 사용이 가능합니다.

def two_times(x): 
    return x*2

result = list(map(two_times, [1, 2, 3, 4]))
print(result)
# 결과 : [2, 4, 6, 8]

result = list(map(two_times, range(10)))
print(result)
# 결과 : [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

result = list(map(two_times, "apple"))
print(result)
# 결과 : ['aa', 'pp', 'pp', 'll', 'ee']

 

 

 한 줄에 여러 개의 값 입력받기 

 

input().split()을 이용해 한 줄로 여러 값을 받을 때 정수 또는 실수 값으로 받고 싶다면 참 곤란하죠.

이때 map을 함께 사용하면 간단하게 정수 또는 실수 값으로 변환이 가능합니다.

>>>list_num = list(map(int, input().split())
10 20 30 40 50   # 한 줄로 값 입력
>>>list_num
[10, 20, 30, 40, 50]

위 결과와 같이 문자열이 아닌 정수로 정상 입력된 것을 확인할 수 있습니다.

 

 

 람다합수와 map함수 

 

map함수의 첫 번째 인자로 앞에서 정의된 함수가 아니어도 이름이 없는 함수인 람다 함수도 대입이 가능합니다.

람다 함수를 이용해 짧은 코드를 더욱 간단하고 명료하게 함축할 수 있습니다.

# 정의 된 함수
def two_times(x): 
	return x*2
   
result = list(map(two_times, [1, 2, 3, 4, 5])
print(result)

# 결과 : [2, 4, 6, 8, 10]

# 람다 함수
result = list(map(lambda x: x * 2, [1, 2, 3, 4, 5]))
print(result)

# 결과 : [2, 4, 6, 8, 10]

 


 

 

 

[알고리즘] 파이썬 기본 문법 - set (집합)

이전글 [알고리즘] 파이썬 기본 문법 - map() ( + 람다 함수) [알고리즘] 파이썬 기본 문법 - 연산자와 숫자 처리 함수 (+ 랜덤 함수) 목차 사칙연산, 제곱, 나머지와 몫 숫자 처리 함수 랜덤 함수 1. 사

jangbageum.tistory.com