[Python] map

김가람휘·2022년 2월 28일
0

Python

목록 보기
13/14

Python map 함수 구조

  • map(function, iterable)

  • 첫 번째 매개변수로는 함수가 오고 두 번째 매개변수로는 반봅 가능한 자료형(리스트, 튜플 등)이 옵니다.

  • map 함수의 반환 값은 map객체이기 때문에 해당 자료형을 list 혹은 tuple형으로 변환시켜줘야 합니다.

  • 함수의 동작은 두 번째 인자로 들어온 반복 가능한 자료형(리스트나 튜플)을 첫 번째 인자로 들어온 함수에 하나씩 집어넣어서 함수를 수행하는 함수입니다.

  • map(적용시킬 함수, 적용할 값들)
    -> list(map(값에 +1을 더해주는 함수, [1,2,3,4,5]))
    -> [2,3,4,5,6]


map 함수 사용 예제

my_list = [1, 2, 3, 4, 5]

# for 반복문 이용
result1 = []
for val in my_list:
    result1.append(val+1)

print(f'result1 : {result1}')

# map 함수 이용
def add_one(n):
    return n+1

result2 = list(map(add_one, my_list))
print(f'result2 : {result2}')
# result1 : [2, 3, 4, 5, 6]
# result2 : [2, 3, 4, 5, 6]
print(list(map(int, ['1','2','3',4.5, 5.8])))
# [1, 2, 3, 4, 5]
ten_times1 = map(lambda x: 10*x, (1, 2, 3, 4, 5))
ten_times2 = map(lambda x: 10*x, range(1, 6)) # 동일한 결과

for i in ten_times1:
    print(i)
# 10
# 20
# 30
# 40
# 50

ten_times1[0] # TypeError 발생

print(list(ten_times1)[0])
# 10
print(list(map(lambda x, y : x + y, [1, 2, 3], (9, 13, 2))))
# [10, 15, 5]

def elewise_mul(x,y,z):
    return x*y*z

print(list(map(elewise_mul, [1, 2, 3], [1, 3, 5], [2, 4, 6])))
# [2, 24, 90]

0개의 댓글