※ 람다표현식과 map함수를 사용하여 함수를 간단하게 표현할 수 있다. 

 

■ 람다표현식

=> 매개변수와 수식으로 이루어진 함수

=> 이름이 없는 '익명함수'

=> 수식을 실행하고, 그 결과를 반환

=> 다른 함수의 인수로 넣을 때 주로 사용

# (lambda 매개변수1, 매개변수2 : 수식)(인수1,인수2)
(lambda n1,n2:n1+n2)(1,2)

3

 

# 람다표현식을 프로그램 내에서 재사용하고 싶다면, 람다표현식을 변수에 담아서 사용한다.
lambda_plus = lambda n1,n2:n1+n2 # 인수를 바로 지정하지 않은 형태

# 변수로 람다표현식 담아 호출하기
lambda_plus(3,4)

7

 

 

■ map 함수

=> 리스트나 튜플의 각 요소를 지정된 함수로 처리해주는 함수

ex) list(map(함수,리스트))   /   tuple(map(함수,튜플))

=> 원본을 변경하지 않고 새 리스트, 튜플을 생성하여 반환한다.

# map함수를 이용하여 리스트 a의 각 요소를 정수화하여 새로운 리스트로 만들기
a = ['1','2','3','4'] # -> str자료형
b = list(map(int,a))

print(a)
print(b)

['1', '2', '3', '4']
[1, 2, 3, 4]

 

 

◎ 함수 부분에 람다표현식을 사용하는 방법
=> list(map(람다표현식,리스트))
=> tuple(map(람다표현식,튜플))

l1 = [1,2,3,4]
t1 = (5,6,7,8)

l2 = list(map((lambda x:x+1),l1))   # l1에 1을 더한 l2리스트
t2 = tuple(map((lambda x:x+1),t1))   # t1에 1을 더한 t2튜플

print(l1)
print(l2)

print(t1)
print(t2)

[1, 2, 3, 4]
[2, 3, 4, 5]
(5, 6, 7, 8)
(6, 7, 8, 9)

 

 

◎ lambda 매개변수1,매개변수2, ... : 식1 if 조건식 else 식2

=> '식1' 은 if조건이 True일 때 실행

=> '식2' 는 if조건이 False일 때 실행

# 짝수는 float로 바꾸고, 홀수는 str로 바꾸기
l1 = [1,2,3,4,5,6,7,8,9,10]
l2 = list(map((lambda x:float(x) if x%2 == 0 else str(x)), l1))

print(l1)
print(l2)

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
['1', 2.0, '3', 4.0, '5', 6.0, '7', 8.0, '9', 10.0]

 

'Python 기초 공부' 카테고리의 다른 글

클래스와 객체 / 모듈과 패키지  (0) 2023.02.24
인수 전달 / 변수 사용  (0) 2023.02.24
함수 만들기와 사용  (0) 2023.02.24
딕셔너리(Dictionary) 활용해보기  (0) 2023.02.20
딕셔너리(Dictionary)  (0) 2023.02.20

+ Recent posts