람다(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]]