코딩테스트/Python 개념

[Python] lambda 함수

박소민 2022. 2. 7. 23:10
람다(lambda)
  • lambda 매개변수(인자)  : 표현식
def sum(a,b):
	return a+b
#위의 식을 람다식으로 표현
lambda a,b: a+b

 

 

lambda함수와 map
  • map( 함수, 리스트나 튜플) : 리스트나 튜플에 함수 적용
  • map의 반환 값을 리스트로 변환 list(map(~~))
def plus_two(x):
	return x+2
    
result1= list(map(plus_two, [1,2,3,4,5]))
print(result1)

result2= list(map((lambda x:x+2),[1,2,3,4,5]))
print(result2)

#결과
[3,4,5,6,7]
[3,4,5,6,7]

 

lambda 함수와 filter
  • filter( 함수, 리스트나 튜플)
  • 두번째 인자로 들어온 리스트나 튜플을 하나씩 받아서 함수로 필터링한 값만 반환
def is_even(x):
	return x%2==0
    
result1=list(filter(is_even, range(10))) #[0~9]
print(result1)

result2=list(filter((lambda x: x%2==0). range(10)))
print(result2)

#결과
[0,2,4,6,8]
[0,2,4,6,8]

 

lambda key로 정렬
  • 📍.sort(key = lambda x: (a, b))b로 정렬 후 a 로 정렬
room.sort(key = lambda x: (x[1], x[0]))
room.sort(key = lambda x: x[0])
room.sort(key = lambda x: x[1])

#결과 예시
b로 정렬 후
[[0, 6], [1, 4], [2, 13], [3, 5], [3, 8], [5, 7], [5, 9], [6, 10], [8, 11], [8, 12], [12, 14]]
a로 정렬
[[1, 4], [3, 5], [0, 6], [5, 7], [3, 8], [5, 9], [6, 10], [8, 11], [8, 12], [2, 13], [12, 14]]