1. map
map 함수는 파이썬 내장 함수로, 주어진 함수를 시퀀스의 각 요소에 적용하여 새로운 시퀀스를 반환하는 역할을 한다. map 함수는 일반적으로 함수를 반복적으로 적용하여 변환 작업을 수행할 때 사용된다.
구조 : map(function, iterable)
function: 시퀀스의 각 요소에 적용할 함수
iterable: 변환을 수행할 시퀀스 또는 이터러블 객체
def factorial(x):
if x == 1:
return 1
else:
return x * factorial(x-1)
print(list(map(factorial, range(1, 11))))
2. filter
filter 함수는 주어진 조건에 따라 시퀀스의 요소를 걸러내는 역할을 한다. 파이썬 내장 함수로 제공되며, 주어진 함수의 반환값이 True인 요소만 선택하여 새로운 이터러블 객체로 반환한다.
구조 : filter(function, iterable)
function: 시퀀스의 각 요소에 적용할 함수 (근데 필터링 역할을 해주는 함수여야 함)
iterable: 변환을 수행할 시퀀스 또는 이터러블 객체
def is_even(x):
return x % 2 == 0
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = filter(is_even, numbers)
print(list(even_numbers)) # 출력: [2, 4, 6, 8, 10]
3. reduce
from functools import reduce
def multiply(x, y):
return x * y
numbers = [1, 2, 3, 4, 5]
product = reduce(multiply, numbers)
print(product) # 출력: 120
5개의 인자를 가진 리스트에서 앞에서 1, 2번째의 인자를 가져와서 함수에 적용한다.
1, 2번째의 인자를 제거하고, 결과 값을 첫번째 인자로 넣어준다.
그리고 반복...
(1) [1, 2, 3, 4, 5]
-> 1 * 2
= 2
(2) [2, 3, 4, 5]
-> 2 * 3
= 6
(3) [6, 4, 5]
-> 6 * 4
= 24
(4) [24, 5]
-> 24 * 5
= 120
4. Lambda
람다(lambda) 함수는 파이썬에서 익명 함수(anonymous function)를 생성하기 위해 사용되는 표현식이다. 람다 함수는 단일 문장으로 표현되며, 일반적인 함수와 달리 함수 정의를 간결하게 작성할 수 있다.
다만, 웬만하면 람다보다는 함수를 사용하라고 권고되며, 람다를 사용하게 된다면 다른 사용자들을 위해서 주석을 남기는 것을 추천하고 있다.
구조
lambda arguments: expression
arguments: 람다 함수의 인자. 2개 이상의 인자도 받을 수 있고, 쉼표로 구분된다.
expression: 람다 함수의 본체로, 인자를 이용하여 수행할 작업을 표현하는 식
add = lambda x, y: x + y
result = add(3, 4)
print(result) # 출력: 7
numbers = [1, 2, 3, 4, 5]
squared_numbers = map(lambda x: x**2, numbers)
print(list(squared_numbers)) # 출력: [1, 4, 9, 16, 25]
'Python' 카테고리의 다른 글
함수형 프로그래밍 (0) | 2024.06.30 |
---|---|
파이썬 (callable, partial) (0) | 2023.06.25 |
파이썬, 함수형 프로그래밍 (일급 함수) (0) | 2023.06.25 |
Python - 카카오맵 크롤링(with Selenium) (0) | 2021.07.26 |
Python - 홈페이지 탐색(with Selenium) (0) | 2021.07.23 |