SeouliteLab

[Python/파이썬] filter() 함수: 조건에 맞는 요소 필터링하기 본문

프로그래밍

[Python/파이썬] filter() 함수: 조건에 맞는 요소 필터링하기

Seoulite Lab 2024. 3. 6. 09:53

filter() 함수는 주어진 이터러블 객체에서 지정된 함수의 조건을 만족하는 요소만 필터링하여 반환합니다. 이번 글에서는 filter() 함수의 사용법과 여러 가지 예제를 살펴보겠습니다.

filter() 함수의 기본 구조

filter(function, iterable)

filter() 함수는 두 개의 인자를 받습니다. 첫 번째 인자는 조건을 확인할 함수이고, 두 번째 인자는 함수를 적용할 이터러블 객체입니다.

예제 1: 리스트에서 짝수만 필터링하기

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = filter(lambda x: x % 2 == 0, numbers)
print(list(even_numbers))  # 출력 결과: [2, 4, 6, 8, 10]

filter() 함수를 사용하여 리스트에서 짝수만 필터링하는 예제입니다.

예제 2: 문자열 리스트에서 길이가 5 이상인 문자열 필터링하기

words = ['apple', 'banana', 'cherry', 'date', 'elderberry']
long_words = filter(lambda x: len(x) >= 5, words)
print(list(long_words))  # 출력 결과: ['apple', 'banana', 'cherry', 'elderberry']

filter() 함수를 사용하여 문자열 리스트에서 길이가 5 이상인 문자열만 필터링하는 예제입니다.

예제 3: 정수 리스트에서 양수만 필터링하기

numbers = [-3, -2, -1, 0, 1, 2, 3]
positive_numbers = filter(lambda x: x > 0, numbers)
print(list(positive_numbers))  # 출력 결과: [1, 2, 3]

filter() 함수를 사용하여 정수 리스트에서 양수만 필터링하는 예제입니다.

예제 4: 리스트에서 None이 아닌 값 필터링하기

values = [1, None, 'apple', 0, '', 5]
filtered_values = filter(None, values)
print(list(filtered_values))  # 출력 결과: [1, 'apple', 5]

filter() 함수를 사용하여 리스트에서 None이 아닌 값만 필터링하는 예제입니다.

예제 5: 튜플 리스트에서 특정 조건을 만족하는 요소 필터링하기

people = [('Alice', 30), ('Bob', 20), ('Charlie', 40)]
filtered_people = filter(lambda person: person[1] >= 30, people)
print(list(filtered_people))  # 출력 결과: [('Alice', 30), ('Charlie', 40)]

filter() 함수를 사용하여 튜플 리스트에서 특정 조건을 만족하는 요소만 필터링하는 예제입니다.

예제 6: 복수의 이터러블 객체를 이용한 필터링

list1 = [1, 2, 3, 4, 5]
tuple1 = (4, 5, 6, 7, 8)
result = filter(lambda x: x in list1, tuple1)
print(list(result))  # 출력 결과: [4, 5]

두 개의 이터러블 객체를 이용하여 필터링하는 예제입니다.