반응형
filter() 함수는 입력받은 시퀀스(리스트, 튜플, 딕셔너리 등)에서 특정 조건에 만족하는 값을 추출하는 함수입니다. 이 함수는 파이썬의 내장 함수 중 하나로서 필터링 기능을 가지고 있습니다.
사용 방법은 다음과 같습니다.
filter(function, iterable)
- function: 필터링하고자 하는 조건을 검사하는 함수
- iterable: 필터링 대상이 되는 시퀀스 객체 (리스트, 튜플, 딕셔너리 등)
function 함수는 입력된 값을 검사하여 True 혹은 False를 반환합니다. True인 값만 필터링되어 반환됩니다.
예시 코드
# 홀수 필터링
def is_odd(num):
return num % 2 == 1
numbers = [1, 2, 3, 4, 5]
result = filter(is_odd, numbers)
print(list(result)) # [1, 3, 5]
위 예제에서, numbers 리스트에서 홀수만 필터링하여 result 리스트에 저장합니다.
filter() 함수는 리스트 내의 요소를 걸러낼 때 list comprehension 혹은 generator expression으로 대체할 수 있습니다.
# filter()함수로 구현
result = list(filter(lambda x: x > 5, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]))
print(result) # [6, 7, 8, 9, 10]
# list comprehension으로 구현
result = [x for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] if x > 5]
print(result) # [6, 7, 8, 9, 10]
# generator expression으로 구현
result = (x for x in [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] if x > 5)
print(list(result)) # [6, 7, 8, 9, 10]
filter에 비해 list_comprehension 방식이 더 빠른 것으로 알려져 있는데요. 하지만, 더 복잡한 조건이 있을 경우에는 filter() 함수를 사용하는 것이 좋을 수 있습니다.
반응형
댓글