반응형
filter()
filter(함수, iterable)
filter() 함수에 인자로 사용되는 함수는 처리되는 각각의 요소(iterable 객체 요소)에 대해 bool 값을 반환한다.
True를 반환하는 요소는 그대로 남아있고, False를 반환하는 요소는 삭제된다.
filter() 함수의 결과는 filter 객체로, 이것도 iterable 하다.
예제 1
multiple3 함수는 인자 값이 3의 배수이면 리턴한다.
filter() 함수에 첫 번째 매개변수로 multiple3 함수를 넣고, 두 번째 매개변수로는 list [3, 7, 9]를 넣었다.
filter() 함수로 반환된 결과를 list로 형 변환해서 확인하면 3의 배수인 3과 9만 list에 남고, 7은 삭제된 걸 볼 수 있다.
인자 값으로 그냥 만든 함수가 아닌 lambda 함수도 넣을 수 있다.
예제 2
map() 함수는 data에 대해 0보다 큰 지 연산을 수행한 후 크면 True, 작으면 False를 반환한다.
이와 달리 filter() 함수는 False인 값은 제외하고, True인 값만 list 요소로 남겨둔다.
따라서 결과 list의 요소 개수와 요소 값 모두 다르다.
예제 3
양수인 숫자들만 제곱한 결과를 리턴하는 것을 만들어본다.
In [11]에서는 함수로 만들었고, In [12]에서는 lambda와 map(), filter()를 활용해서 만들었다.
마지막으로 In [13]은 List Comprehension으로 만들었다.
반응형