Python에 내장된 filter() 함수도 강력합니다. 목록, 튜플, 문자열과 같은 시퀀스에 대해 데이터 필터링 절차를 수행합니다. filter() 함수는 iterable의 각 요소(예: 목록 또는 튜플)에 함수를 적용하고 함수가 True를 반환하는 요소만 포함하는 다른 iterable을 반환하는 데 사용됩니다. 이러한 방식으로 filter()를 사용하면 일부 조건에 따라 그룹화에서 요소를 필터링할 수 있습니다. 함수를 사용할 수 없고 True인 요소만 반환하는 경우 첫 번째 인수는 None일 수 있습니다.
통사론:
filter (function, iterable)
매개변수
기능: 그것은 기능입니다. None으로 설정하면 True인 요소만 반환됩니다.
반복 가능: 목록, 튜플, 문자열과 같은 반복 가능한 시퀀스입니다.
두 매개변수가 모두 필요합니다.
execlp
반품
함수에서 반환한 것과 동일한 것을 반환합니다.
기능을 이해하기 위해 filter() 함수의 몇 가지 예를 살펴보겠습니다.
Python filter() 함수 예제 1
이 간단한 예는 필터 함수를 사용하여 5보다 큰 값을 반환합니다. 아래 예를 참조하세요.
자바의 클래스와 객체
암호
# Python filter() function example def filterdata(x): if x>5: return x # Calling function result = filter(filterdata,(1,2,6)) # Displaying result print(list(result))
산출:
[6]
코드는 단일 인수 x를 사용하는 filterdata라는 함수를 정의합니다. 이 함수에서는 x가 5보다 크다고 가정하고 이것이 사실이라면 x를 인쇄합니다. 그런 다음, filter() 함수를 호출하여 filterdata를 주 인수로 전달하고 튜플(1, 2, 6)을 후속 인수로 전달합니다. filter() 함수는 튜플의 모든 요소에 filterdata() 함수를 적용하고 x > 5 조건을 충족하는 요소만 포함하는 반복자를 반환합니다. 마지막으로 list() 함수를 사용하여 반복자를 목록으로 변환합니다. 그리고 결과를 인쇄해 보세요.
다음은 Python에서 filter() 메서드를 활용하는 방법에 대한 몇 가지 추가 예입니다.
예 2:
목록에서 빈 문자열을 필터링합니다.
암호
# Python filter() function example strings = [ '', 'hello', '', 'world', '' ] # Using filter() to remove empty strings from the list result = list(filter(lambda x: x != '', strings)) # Printing the result print(result)
산출:
PD 병합
[ 'hello', 'world' ]
이 예제에서 람다 함수는 빈 문자열('')과 동일하다는 가정을 테스트하여 각 문자열이 비어 있지 않은지 확인합니다. filter() 함수는 비어 있지 않은 문자열만 포함하는 또 다른 반복 가능 항목을 반환합니다.
예시 3:
목록에서 음수를 필터링합니다.
암호
# Python filter() function example numbers = [ 1, -2, 3, -4, 5, -6 ] # Using filter() to remove negative numbers from the list result = list(filter(lambda x: x >= 0, numbers)) # Printing the result print(result)
산출:
[1, 3, 5]
이 예제에서 람다 함수는 각 숫자가 0보다 더 눈에 띄거나 0과 동등한 경우 테스트를 통해 음수가 아닌 것으로 가정하는지 확인합니다. filter() 함수는 음수가 아닌 숫자만 포함하는 또 다른 반복 가능 항목을 반환합니다.
예시 4:
목록에서 중복 항목을 필터링합니다.
암호
BFS 및 DFS
# Python filter() function example numbers = [ 1, 2, 3, 2, 4, 3, 5 ] # Using filter() to remove duplicate numbers from the list result = list(filter(lambda x: numbers.count(x) == 1, numbers)) # Printing the result print(result)
산출:
[ 1, 4, 5 ]
이 예에서 람다 함수는 각 숫자가 얼마나 자주 나타나는지 계산하고(numbers.count(x)) 해당 숫자가 다음과 같은지 테스트하여 숫자 목록에 각 숫자가 한 번만 나타나는지 확인합니다. 1. filter() 함수는 고유한 숫자만 포함하는 또 다른 반복 가능 항목을 반환합니다.
참고: Python 3에서 filter() 함수가 반복 가능한 항목을 반환한다는 점은 중요하며, 이는 목록으로 포함하기 위해 목록(위 예제에 표시된 대로)으로 완전히 변경하고 싶다는 것을 의미합니다. 그럼에도 불구하고 Python 2에서는 filter() 함수가 물론 목록을 반환합니다.
결론:
마지막으로, filter() 함수는 Python의 데이터 조작을 위한 강력한 도구입니다. 미리 정의된 조건을 기반으로 반복 가능한 항목을 필터링하면 실제로 원하는 데이터를 빠르고 효과적으로 분리할 수 있습니다. 마찬가지로 다른 Python 함수와 함께 filter()를 활용하여 더 복잡한 데이터 조작을 수행할 수 있습니다.