본문 바로가기

파이썬

[Python]#23 특정 기준 충족하는 모든 개체 filter()

Python의 filter() 함수는 특정 조건에 따라 iterable(예: 목록 또는 튜플)에서 요소를 필터링해야 할 때 사용됩니다.

주어진 조건을 만족하는 요소만 포함하는 새로운 이터러블을 생성하고자 할 때 유용합니다.
예를 들어 filter()를 사용하여 목록에서 모든 짝수, 특정 하위 문자열을 포함하는 모든 문자열 또는 특정 기준을 충족하는 모든 개체 등을 가져올 수 있습니다.
filter() 함수는 부울 값을 반환하는 함수와 반복 가능한 함수의 두 가지 인수를 사용합니다. 함수는 iterable의 각 요소에 적용되며 함수가 True를 반환하는 요소만 필터링된 iterable에 포함됩니다.

다음은 filter() 함수의 기본 구문입니다.

filtered_iterable = filter(function, iterable)

위 구문에서 function은 부울 값을 반환하는 함수이고 iterable은 필터링하려는 iterable입니다. Filtered_iterable은 함수가 True를 반환한 요소만 포함하는 결과 Iterable입니다.

filter() 함수는 특정 조건에 따라 요소를 필터링해야 하는 다양한 상황에서 사용할 수 있습니다. 보다 간결하고 효율적인 코드를 작성하는 데 도움이 되는 강력한 도구입니다.

 

다음은 filter() 함수를 사용하는 방법의 예입니다.

# 홀수를 필터링하는 함수 정의
def is_odd(n):
    return n % 2 == 1

# 숫자 목록 만들기
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# filter()를 사용하여 목록에서 홀수를 가져옵니다.
odd_numbers = list(filter(is_odd, numbers))

# Print the result
print(odd_numbers)

Output:

[1, 3, 5, 7, 9]

이 예제에서 is_odd() 함수는 주어진 숫자가 홀수이면 True를 반환하고 그렇지 않으면 False를 반환하도록 정의됩니다. filter() 함수는 목록 번호에서 홀수를 필터링하는 데 사용되며 필터링된 결과 iterable은 list() 함수를 사용하여 목록으로 변환됩니다. 마지막으로 결과 홀수 목록이 콘솔에 인쇄됩니다.

 

Python에서 filter() 함수를 사용할 때 코드가 예상대로 작동하는지 확인하기 위해 염두에 두어야 할 몇 가지 사항이 있습니다.


filter()에 전달된 함수는 부울 값을 반환해야 합니다. filter()에 첫 번째 인수로 전달한 함수는 iterable에서 요소를 가져와서 특정 조건에 따라 True 또는 False를 반환해야 합니다. 함수가 True 또는 False 이외의 값을 반환하면 filter()의 동작을 예측할 수 없습니다.
필터링된 이터러블은 제너레이터입니다. 필터()를 사용하여 이터러블을 필터링하면 필터링된 이터러블은 실제로 제너레이터 객체입니다. 즉, 필터링된 요소를 메모리에 한 번에 모두 저장하지 않습니다. 대신 반복하면서 각 요소를 즉석에서 생성합니다. 이것은 메모리를 절약하기 때문에 큰 이터러블에 유용할 수 있지만 필터링된 이터러블을 한 번만 반복할 수 있음을 의미하기도 합니다.
필터링된 이터러블은 목록 또는 다른 이터러블 유형으로 변환되어야 합니다. 필터링된 이터러블을 여러 번 사용하거나 메모리에 저장하려면 list() 또는 tuple( ) 함수를 사용하거나 목록 내포 또는 생성기 표현식을 사용합니다.
필터링된 이터러블의 요소 순서는 원래 이터러블과 동일하지 않을 수 있습니다. 필터()를 사용하여 이터러블을 필터링하면 필터링된 결과 이터러블이 원래 이터러블의 순서를 유지하지 못할 수 있습니다. 요소의 순서를 유지해야 하는 경우 filter() 대신 목록 내포 또는 생성기 표현식을 사용할 수 있습니다.

'파이썬' 카테고리의 다른 글

[Python]#25 람다함수 iterable  (0) 2023.03.17
[Python]#24 내장 함수 reduce()  (0) 2023.03.16
[Python]#22 map()  (0) 2023.03.13
[Python]#21 'datetime()' 날짜와 시간 함수  (0) 2023.03.12
[Python]#20 수학 모듈 math 활용하기  (0) 2023.03.10