Python

있어보이는 Python: map, lambda

qlsenddl 2020. 11. 13. 16:09
728x90

1. map

 map함수는 list 같은 자료형의 각각의 element에 대해서 같은 연산을 적용할 때 유용한 함수이다. map 함수의 문법은 map(func, A)이다. func은 A 변수의 각 element에 적용할 함수이고, A는 list, tuple와 같은 반복가능한 자료형(iterable)이다.

 map 함수를 사용하지 않는다고 했을 때, 만약 실수 값들을 요소로 같는 list가 있다고 했을 때 이 요소 값들을 정수 자료형(int)로 바꾸려면 다음과 같이 code를 짜야한다.



 하지만 map 함수를 사용하면 다음과 같이 간단하게 code를 짤 수 있다.

ex1>

a = [1.2, 4.3, 9.2, 2.9, 6.5]

a = list(map(int, a))

print(a)

>> [1, 4, 9, 2, 6]


ex2>

def test(x):

    return x**2

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

a = list(map(test, a))

print(a)

>> [1, 4, 9, 16, 25]

-> 위와 같이 python 내장 함수 말고도 사용자 정의된 함수에 대해서도 사용할 수 있다.


2. lambda

 lambda는 함수를 간단하게 정의할 때 유용한 함수이다. lambda 함수의 문법은 lambda <함수 인자>: <표현식> 이다.

 lambda 함수를 사용하지 않는 경우 def를 이용해서 함수를 정의해야 한다.

하지만 lambda 함수를 사용하면 다음과 같이 간단하게 code를 짤 수 있다.

ex1>

test = lambda x : x**2

print(test(7))

>> 49


ex2>

test = lambda x, y : (x**2+y**2)**0.5

print(test(3,4))

>> 5

-> 여러 인자를 갖는 함수를 정의하는 경우


ex3>

z = (lambda x, y : (x**2+y**2)**0.5)(3, 4)

print(z)

>> 5

-> 함수 값을 바로 변수로 받는 경우

728x90