728x90
반응형
람다 함수 기본
# 람다: 간단한 함수를 간단하게 해주는 문법
def power(숫자):
return 숫자 ** 2
power2 = lambda 숫자: 숫자 **2
print(power2(10))
#위와같은 람다 식을 쓰게되면 power함수와 정확히 동일한 동작을 한다
def is_odd(숫자):
return 숫자 % 2 == 1
is_odd2 = lambda 숫자: 숫자 %2 ==1
print(is_odd2(3))
#위와같은 람다 식을 쓰게되면 is_odd함수와 정확히 동일한 동작을 한다
#간단한 한줄의 return 값 만을 쓰기 위해 길이가 길어지는 것이 별로라 생각할 수 있다
#그래서 한줄에 간단하게 사용하는 방식이 람다.
람다를 인라인 함수로 사용하기
람다 함수 기본을 익혔더라도 이것이 얼마나 큰 의미가 있는 것인지 이해가 어렵다. 람다함수는 인라인 함수로 사용했을 때 효과를 발휘한다.
a = [1, 2, 3, 4, 5]
이터레이터 = map(lambda 숫자: 숫자 **2, A)
print(list(이터레이터))
이터레이터 = filter(lambda 숫자: 숫자%2 == 1, A)
print(list(이터레이터))
# 한 줄 안에 무언가를 넣는 것을 인라인이라고 표현한다.
key 키워드 매개변수
A = [52, 273, 32, 103, 57]
print(min(A))
print(max(A))
# 그런데 만약 요소가 단순한 숫자가 아닌 딕셔너리를 갖는 리스트에서
# 가장 큰 값과 가장 작은 값을 갖게 하려면 어떻게해야할까?
A = [{
"제목" : "혼자 공부하는 파이썬",
"가격" : 18000
}, {
"제목" : "혼자 공부하는 머신러닝 + 딥러닝",
"가격" : 26000
}, {
"제목" : "혼자 공부하는 자바스크립트",
"가격" : 24000
}]
print(min(A, key=lambda 책: 책["가격"]))
print(max(A, key=lambda 책: 책["가격"]))
A.sort(key=lambda 책: 책["가격"])
print(A)
# 이렇게 sort함수를 사용해서도 할 수 있다.
728x90
반응형
댓글