Python

[Python] Lambda, Reduce, Map, Filter 함수

알파파고 2025. 1. 3. 21:36
728x90

lambda 장점 : 사용 즉시 메모리에서 소멸 , pythonic, 1회성 사용 시 좋음

일반함수 : 재사용성 위해 메모리 저장

 

lambda 사용 

digits1 = [x * 10 for i in range(1,11)]

result = list(map(lambda i: i**2, digits1)) #lambda i 매개변수 :i**2 반환값
print(result)

결과 : [100,400,900,1600 ... 10000]

lambda 매개변수 : 반환값

map으로 함수를 인자로 입력받고 리스트값을 한개씩 순회하면 결과 반환

 

일반함수 사용

def also_sauare(nums):
	def double(x):
    	 return x**2
    return map(double,nums)
print(list(also_square(digits1)))

결과: [100,400,900,1600,...10000]

 

 

lambda + filter 로 짝수 찾기

digits2 = [i for i in range(1,11)]

result = list(filter(lambda x: x % 2 == 0), digits2)

결과 : [2,4,6,7,10]

filter(함수,순회가능한 데이)

lambda 결과값이 참일 경우 반환

 

일반함수 사용

def also_evens(nums):
	def is_even(x):
    	return x%2 == 0
    return filter(is_even,nums)

결과 : [2,4,6,8,10]

 

 

reduce 

from functools import reduce

digits3 = [x for i in range(1,101)]

result = reduce(lambad x,y : x+y, digits3)

print(result)

결과 : 5050

리스트가아닌 반환값을 모두 더 한 값이 최종결과값으로 반환

 

일반함수 사용

def also_add(nums):
	def add_plus(x,y):
    	return x+y
    return reduce(add_plus,nums)
    
 print(also_add(digits3))
 
 결과 : 5050
728x90

'Python' 카테고리의 다른 글

[python] Context Manager  (0) 2025.01.26
[python] Shallow Copy & Deep Copy (얕은 복사와 깊은 복사)  (0) 2025.01.12
[Python] 클로저(closure)  (0) 2025.01.01