파이썬에는 filter
라는 내장 함수가 있습니다.
함수 filter
는 첫번째 인자로 함수를 받고 두번째 인자로는 리스트와 비슷한 것들을 받습니다.
아래와 같이 사용합니다.
def is_even(n):
return n % 2 == 0
numbers = (1, 2, 3, 4)
even_numbers = filter(is_even, numbers)
print(tuple(even_numbers)) # (2, 4)
filter
함수를 직접 구현해본다면 아래와 비슷할 것 같습니다.
def my_filter(f, xs):
for x in xs:
if f(x):
yield x
만약 yield
가 생소하신 분이라면 아래와 같이 생각하셔도 됩니다.
def my_filter(f, xs):
temp = []
for x in xs:
if f(x):
temp.append(x)
return temp
위와 같이 함수 filter
는 두번째 인자로 받은 리스트의 원소들을 첫번째 인자로 받은 함수에 차례대로 넣어보고 그 결과가 참인 것만 골라주는 편리한 함수입니다.