반응형
250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- numpy
- 머신러닝
- 경사하강법
- 로지스틱회귀
- 데이터분석
- 영국석사
- SQL
- 코딩독학
- 코드잇 TIL
- 다항회귀
- HTML
- matplotlib
- CSS
- 윈도우함수
- 오늘도코드잇
- 코드잇
- 나혼자코딩
- 결정트리
- 선형회귀
- 코드잇TIL
- 행렬
- for반복문
- sql연습문제
- 파이썬
- 런던
- Seaborn
- 코딩
- 판다스
- 유학생
- 코딩공부
Archives
- Today
- Total
영국 척척석사 유학생 일기장👩🏻🎓
(파이썬) 람다(lambda)함수 개념과 예시 및 map, filter 함수와 같이 응용하기 본문
728x90
반응형
지난 글에서 함수 def를 정의하고 호출하는 방법과 코드를 문서화하기 위한 독스트링(docstring)에 대해 알아보았습니다. 이번 글에서는 유용한 함수인 람다(lambda) 함수와 람다 식에 대해 알아보겠습니다.
🔻(참고) def 함수🔻
🔻(참고) def 독스트링 🔻
1. 람다식
- 파이썬에서는 람다 표현식을 사용하여 익명 함수(anonymous function)를 만들 수 있습니다.
- 즉, 이름이 없는 함수를 만들 수 있습니다.
- 익명 함수는 코드에서 나중에 필요하지 않은 간단한 함수를 만들 때 유용합니다.
- 특히, 고차원 함수 즉, 다른 함수를 인수로 받는 함수에 특히 유용할 수 있습니다.
- 예를 들어, 람다 식을 사용하면 이 함수를 줄일 수 있습니다.
def multiply(x, y):
return x * y
multiply = lambda x, y: x * y
- 위의 두 함수는 모두 같은 방식으로 사용됩니다. 아래와 같이 호출할 수 있습니다.
multiply(4, 7)
- 28이 리턴됩니다.
2. 람다 함수의 구성 요소
- 키워드 lambda는 코드가 람다식이라는 걸 나타내기 위해 사용합니다.
- lambda 뒤에는 쉼표로 구분한 익명 함수들의 인수(들)이 나오고, 인수를 쉼표로 구분하고, 그 뒤에 콜론 : 을 씁니다.
- 함수와 유사하게, 람다식에서 인수의 이름은 임의로 할 수 있습니다.
- 마지막은 이 함수에서 계산되고 리턴되는 식입니다.
3. 예시
문제1) map()을 사용하여 각 리스트의 평균을 찾아 averages 리스트를 람다 표현식으로 코드 작성하기
* map(function, iterable) 함수
- iterable의 각 요소에 대해 function 함수를 적용한 결과를 새로운 iterator로 반환합니다.
- 이때, function 함수는 각 요소를 인자로 받아서 처리하며, 함수의 반환값이 새로운 iterator의 각 요소가 됩니다.
numbers = [
[34, 63, 88, 71, 29],
[90, 78, 51, 27, 45],
[63, 37, 85, 46, 22],
[51, 22, 34, 11, 18]
]
def mean(num_list):
return sum(num_list) / len(num_list)
averages = list(map(mean, numbers))
averages = list(map(lambda x: sum(x) / len(x), numbers))
print(averages)
>>> [57.0, 58.2, 50.6, 27.2]
문제2) filter()을 사용하여 글자 수 10자 이내의 cities만 찾는 함수를 람다 표현식으로 코드 작성하기
* filter(function, iterator) 함수
- 첫 번째 매개변수로는 필터링을 적용시킬 함수가 오고 두 번째 매개변수로는 반복 가능한 값들이 들어오게 됩니다.
- iterator에 들어온 값들을 하나씩 function에 넣어서 반환이 true인 값을 필터링해서 다시 리스트로 만들어줍니다.
cities = ["New York City", "Los Angeles", "Chicago", "Mountain View", "Denver", "Boston"]
def is_short(name):
return len(name) < 10
short_cities = list(filter(is_short, cities))
short_cities = list(filter(lambda x: len(x) < 10, cities))
print(short_cities)
>>> ['Chicago', 'Denver', 'Boston']
728x90
반응형
'코딩공부 > Python' 카테고리의 다른 글
(파이썬) NumPy, ndarray의 요소에 액세스하고 요소 삭제/삽입하기 (0) | 2024.06.12 |
---|---|
(파이썬) NumPy 넘파이 내장 함수 총정리 (0) | 2024.06.12 |
(파이썬) def 함수 문서화하기 위한 독스트링(docstring) 쉽게 알아보기 (1) | 2024.06.11 |
(파이썬) def 함수 정의하고 호출하기, 변수 범위 (0) | 2024.06.11 |
(파이썬) 리스트 컴프리헨션(List Comprehension)과 사용하는 이유 (0) | 2024.06.10 |