Head vs breakz

[Code] - Python / lambda, map, reduce, filter 사용법 본문

Head/Code

[Code] - Python / lambda, map, reduce, filter 사용법

headbreakz 2020. 8. 25. 20:33

 

lambda 인자리스트 : 표현식

#lambda 인자 : 표현식
fun= lambda x ,y :x + y

fun(10,20)
#30

lambda는 한번만 사용하고 버리는 함수로, 함수식을 만들어서 사용한다.


 

 

map(함수,리스트)

#예시 1

#함수 
fun_1 = lambda x :x*x
#리스트
num_1 = [1,2,3,4]
#리스트에 저장
answer_1 = list(map(fun_1,num_1))
#결과
print(answer_1)
# [1,4,9,16]
#예시2

#리스트
num_2=[5,1,23,5,2]
#리스트 값을 문자로 변환하여 리스트에 저장
answer_2 = list(map(str,num_2))
#저장
print(answer_2)
#['5', '1', '23', '5', '2']

map은 함수와 리스트를 사용하는 함수이다. 설정한 함수에 대해서 리스트 값이 적용되서 반환되는 형태이다.


 

 

reduce(함수, 순서형 자료, 첫번째 값) - 순서형 자료 = 문자열,list,tuple

#python3부터 내장함수에서 사라짐
from functools import reduce

#예시1
#함수 
fun_2 = lambda x,y : x*y
# 순서형 자료
num_3 = [1,5,2,3,4]
#reduce 함수 사용 
# 1*5 -> 5*2 ->10*3 -> 30*4
answer_3 = reduce(fun_2,num_3)
#결과
print(answer_3)
#120
#예시
#함수
fun_3 = lambda x,y : y+x
#순서형 자료
txt_1='online'
#reduce 함수 사용
answer_4 = reduce(fun_3,txt_1,'1st')
#결과
print(answer_4)
#enilno1st

reduce는 순서형 자료가 함수에 적용되면서 하나의 값으로 합쳐지는 함수이다. 첫번째 값을 설정할 수 있으며, 설정 안하면 순서형 자료 순서대로 함수에 들어간다.


 

 

filter(함수, 리스트)

#예시
#함수
fun_4 = lambda x : x < 10
#리스트
num_4 = [3,5,13,12,21,34,14,2,43,1]
#filter 사용하여 리스트에 저장
answer_5 =list( filter(fun_4,num_4) )
#결과
print(answer_5)
#[3, 5, 2, 1]

filter는 리스트에서 함수의 조건에 맞는 값을 반환하는 함수이다.


 

Comments