728x90
015. 함수 filter, lambda
일단 필터함수랑 람다함수 각각 먼저 알아보자
1.filter()
- 걸러낸다는 뜻. 함수도 동일한 의미
- 두번째 인수(반복 가능한 자료형) 첫 번째 인수(함수명)에 입력되었을 때, '반환 값이 참인 것만 걸러 내서 돌려준다.'
1)형태
filter(function, iterable) filter(함수명, 반복가능한 자료형) |
2)세부 내용
filter(함수명, 반복가능한 자료형)
- 함수명(function) : True or False로만 반환
- 반복가능한 자료형(iterable) : 함수에 차례로 들어갈 반복 가능한(iterable) 인수(instance)
instance 클래스로 만든 객체 - 객체와 구분, 어떤 클래스의 객체인지 관련지어 얘기할 때 인스턴스라고 부른다 |
3)특징
- 여러 데이터 중에 일부만 추려낼 때 사용
- 따라서, 보통 list,tuple을 대상으로 주로 사용함
- filter()는 filter값으로만 리턴함
- 결과값이 참인 것만 결과값을 돌려줌. False는 다 버리고 True만 줌
- filter() 함수의 결과값을 list로 변환하는 가장 쉬운 방법은 list() 내장 함수를 사용하는 것.
- 마찬가지로 tuple도 내장함수 tuple() 사용
이제 직접해보자
보다시피 filter()가 filter값으로 낸다는 의미를 알것이다. 이상한 숫자와 알파벳이 섞여있다
이를 사람이 알기 쉽게 변환할 수 있도록 하는게 list나 tuple로 바꿔주는 것이다. 그래서 아래에서 list()를 추가하였고,
0보다 큰 [1,2] 값을 리턴한 것.
filter() 함수를 쉽게 한마디로 설명하자면 def 함수와 연계하여 함수의 조건을 충분하는 True값만 걸러서 추출한다고 생각하면 되겠다
2.lambda
def와 동일한 역할을 하는 녀석
1)형태
lambda 매개변수1,매개변수2... : 매개변수를 이용한 표현식
* 매개변수(parameter)와 인자(arguement)란?
def add(x,y): # (x,y)가 매개변수(parameter)
return x + y
z = add(4,-5) # (4,-5)가 인자(argument)
print(z)
위의 def 함수를 lambda 함수로 전환해보면,
# lambda 함수로 변환
add = lambda x,y : x + y
z = add(4,-5)
print(z)
2)특징
언제 사용하는가?
def를 사용할 필요없이 간단하거나, def를 사용할 수 없는 곳에 주로 사용
위의 filter() 함수식은 람다함수를 사용하면 더 간편하게 코드 작성가능
728x90
반응형
'Python > review of learning' 카테고리의 다른 글
[Python] 017. 객체지향 언어란? - 기본 구성 요소 - (0) | 2021.09.23 |
---|---|
[Python] 016. 객체란? (0) | 2021.09.03 |
[Python] 014. error message - list is not callable (0) | 2021.08.25 |
[Python] 013. 결과값과 변수 (0) | 2021.08.25 |
[Python] 012. for문 - 행열이해 및 1,2차원 list생성법 (0) | 2021.08.25 |