본문 바로가기
[개발자 로드맵]/파이썬

[혼자 공부하는 파이썬] 람다, key 키워드 매개변수

by Ramrider 2023. 9. 20.
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
반응형

댓글