본문 바로가기
Programing/Python

Python에서 List 요소를 Filter(필터링) 하는 방법?

by 멍멍돌이야 2023. 3. 8.
반응형

이 자습서에서는 내장 Python filter() 함수를 사용하여 목록 요소를 필터링하는 방법을 배웁니다.

 

1. Python filter() 함수 소개

경우에 따라 목록의 요소를 반복하고 지정된 기준에 따라 그 중 일부를 선택해야 합니다.

 

다음과 같은 점수 목록이 있다고 가정합니다.

scores = [70, 60, 80, 90, 50]

각 요소가 70보다 크거나 같은 점수 목록에서 모든 요소를 가져오려면 다음 코드를 사용합니다.

scores = [70, 60, 80, 90, 50]

filtered = []

for score in scores:
    if score >= 70:
        filtered.append(score)

print(filtered)

How it works.

  • 먼저 점수 목록의 요소를 포함할 빈 목록(필터링됨)을 정의합니다.
  • 둘째, 점수 목록의 요소를 반복합니다. 요소가 70보다 크거나 같으면 필터링된 목록에 추가합니다.
  • 셋째, 필터링된 목록을 화면에 보여줍니다.

 

파이썬에는 필터()라는 내장 함수가 있어 List(또는 Tuple)을 더 멋진 방식으로 필터링할 수 있습니다.

 

다음은 filter() 함수의 구문을 보여줍니다.

filter(fn, list)

filter() 함수는 목록의 요소를 반복하고 fn() 함수를 각 요소에 적용합니다. fn()이 True를 반환하는 요소에 대한 반복자를 반환합니다.

실제로 filter() 함수의 두 번째 인수에는 목록뿐만 아니라 모든 이터러블을 전달할 수 있습니다.

다음은 filter() 함수를 사용하여 각 점수가 70보다 크거나 같은 점수 목록을 반환하는 방법을 보여줍니다.

scores = [70, 60, 80, 90, 50]
filtered = filter(lambda score: score >= 70, scores)

print(list(filtered))

Output:

[70, 80, 90]

filter() 함수는 반복자를 반환하므로 for 루프를 사용하여 반복할 수 있습니다. 또는 list() 함수를 사용하여 반복자를 목록으로 변환할 수 있습니다.

 

2. Python filter() 함수를 사용하여 튜플 목록 필터링 예제

다음과 같은 튜플 목록이 있다고 가정합니다.

countries = [
    ['China', 1394015977],
    ['United States', 329877505],
    ['India', 1326093247],
    ['Indonesia', 267026366],
    ['Bangladesh', 162650853],
    ['Pakistan', 233500636],
    ['Nigeria', 214028302],
    ['Brazil', 21171597],
    ['Russia', 141722205],
    ['Mexico', 128649565]
]

목록의 각 요소는 국가 이름과 인구를 포함하는 튜플입니다.

인구가 3억 명 이상인 모든 국가를 가져오려면 다음과 같이 filter() 함수를 사용할 수 있습니다.

countries = [
    ['China', 1394015977],
    ['United States', 329877505],
    ['India', 1326093247],
    ['Indonesia', 267026366],
    ['Bangladesh', 162650853],
    ['Pakistan', 233500636],
    ['Nigeria', 214028302],
    ['Brazil', 21171597],
    ['Russia', 141722205],
    ['Mexico', 128649565]
]

populated = filter(lambda c: c[1] > 300000000, countries)

print(list(populated))

Output:

[['China', 1394015977], ['India', 1326093247], ['United States', 329877505]]

 

3. Summary

  • Python filter() 함수를 사용하여 목록(또는 튜플)을 필터링합니다.

 

 

 

refreance:https://www.pythontutorial.net/python-basics/python-filter-list/
728x90
반응형

댓글