※ 람다표현식과 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 |