람다 식을 사용하여 한 줄에 함수를 작성할 수 있습니다.
lambda 매개변수 : 표현식
위와 같은 형식으로 사용하시면 됩니다.
# 일반적인 함수 정의
def add(x, y):
return x + y
# lambda 이용 함수 정의
lambda x, y : x + y
람다 식은 함수를 만드는 간단한 방법입니다.
람다 식의 활용
1. 지도()
– 맵은 지정된 함수로 목록의 요소를 처리하는 함수입니다.
– list(map(function, list)) 또는 tuple(map(function, tuple)) 형태로 사용한다.
>>> l = (1.1, 2.2, 3.3, 4.4, 5.5)
>>> l = list(map(int, l))
>>> l
(1, 2, 3, 4, 5)
>>> l = (1, 2, 3, 4, 5)
>>> l = list(map(lambda x : x ** 2, l))
>>> l
(1, 4, 9, 16, 25)
2. 감소()
– Reduce는 여러 데이터에 대한 누적 집계를 생성하는 데 사용되는 기능입니다.
– Reduce 형태로 사용(aggregate function, iterable data, initial value)
# reduce()를 사용하기 위해서는 함수를 import 해줘야 한다
>>> from functools import reduce
>>> def add(x, y):
return x + y
>>> l = (1, 2, 3, 4, 5)
>>> result = reduce(add, l) # 초기값을 입력하지 않으면 자동으로 초기값 0으로 설정
>>> result
15
>>> from functools import reduce
>>> l = (1, 2, 3, 4, 5)
>>> result = reduce(lambda acc, val : acc + val**2 , l) # 초기값을 입력하지 않으면 자동으로 초기값 0으로 설정
>>> result
55
3. 필터()
– 필터는 여러 데이터에서 일부 데이터만 추출할 때 사용하는 기능입니다.
– 필터 형태로 사용(함수, 통과 가능한 날짜)
>>> def is_even(number):
if number % 2 == 0:
return True
else:
return False
>>> l = (1, 2, 3, 4, 5)
>>> result = list(filter(is_even, l))
>>> result
(2, 4)
>>> l = (1, 2, 3, 4, 5)
>>> result = list(filter(lambda x : x > 3, l))
>>> result
(4, 5)
4. 정렬(), 정렬()
– sort(), sorted()는 주어진 데이터를 오름차순 또는 내림차순으로 정렬하는 데 사용되는 함수입니다.
(기본값은 오름차순, 반전 = true 조건으로 내림차순)
– sort() 함수는 기존 목록을 변경하고 None을 반환합니다.
sorted() 함수는 기존 목록을 수정하지 않고 정렬된 목록을 반환합니다.
<Überprüfen Sie den Unterschied zwischen sort() und sorted()>
>>> l = (2, 1, 4, 3, 5)
>>> l.sort()
>>> l
(1, 2, 3, 4, 5)
>>> l2 = (2, 1, 4, 3, 5)
>>> l3 = sorted(l2)
>>> l2
(2, 1, 4, 3, 5)
>>> l3
(1, 2, 3, 4, 5)
# 그냥 쓰면 첫번 째 값 기준으로 정렬
>>> l = ((1, 2), (0, 3), (5, 2), (3, 5), (5, 6))
>>> l.sort()
>>> l
((0, 3), (1, 2), (3, 5), (5, 2), (5, 6))
# key, lambda를 사용하면 몇번 째 값을 기준으로 정렬할건지 정할 수 있음
>>> l2 = ((1, 2), (0, 3), (5, 2), (3, 5), (5, 6))
>>> l2.sort(key = lambda x : x(0))
>>> l2
((0, 3), (1, 2), (3, 5), (5, 2), (5, 6))
>>> l3 = ((1, 2), (0, 3), (5, 2), (3, 5), (5, 6))
>>> l3.sort(key = lambda x : x(1))
>>> l3
((1, 2), (5, 2), (0, 3), (3, 5), (5, 6))
사전의 형태로도 사용할 수 있습니다.
>>> dict = {
'b' : 2,
'a' : 3,
'e' : 1,
'c' : 4,
'd' : 5,
}
# key 값 매개변수에 넣어 key 정렬
>>> sorted(dict.keys(), key=lambda x : x))
('a', 'b', 'c', 'd', 'e')
# value 값을 매개변수에 넣어 value 정렬
>>> sorted(dict.values(), key=lambda x : x))
(1, 2, 3, 4, 5)
# value 값으로 정렬한 후 key 출력
>>> sorted(dict, key=lambda x : dict(x)))
('e', 'b', 'a', 'c', 'd')
# key 값으로 정렬한 후 (key, value) 출력
>>> sorted(dict.items(), key=lambda x : x(0)))
(('a', 3), ('b', 2), ('c', 4), ('d', 5), ('e', 1))
# value 값으로 정렬한 후 (key, value) 출력
>>> sorted(dict.items(), key=lambda x : x(1)))
(('e', 1), ('b', 2), ('a', 3), ('c', 4), ('d', 5))