Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python 필터:단계별 자습서

파이썬 filter() 메소드는 목록, 세트 및 튜플을 필터링하는 데 사용됩니다. filter() 제공된 기준에 따라 반복 가능한 개체를 필터링하고 필터링된 결과를 반환합니다.


프로그래밍할 때 어떤 방식으로든 필터링하고 싶은 값 목록이 있을 수 있습니다. 예를 들어, 쿠키 주문 목록이 있고 쿠키 가게의 특정 요리사가 처리하는 초콜릿과 관련된 주문만 반환하려고 할 수 있습니다.

바로 Python filter()입니다. 메소드가 들어옵니다. filter() 메소드를 사용하여 미리 정의된 기준 세트를 기반으로 특정 목록을 필터링하고 필터링된 데이터로 iterable을 반환할 수 있습니다.

이 자습서에서는 filter()에 대해 설명합니다. 방법 및 코드에서 사용할 수 있는 방법. 또한 Python 코드에서 함수의 몇 가지 예를 살펴보겠습니다.

파이썬 필터

목록은 공통 주제로 여러 값을 저장하는 데 사용할 수 있는 Python의 데이터 유형입니다. 예를 들어 목록을 사용하여 지역 패션 매장에서 판매 중인 모든 옷을 저장하거나 프로그래밍 언어 이름 목록을 저장할 수 있습니다.

종종 목록으로 작업할 때 일련의 기준에 따라 목록을 필터링하고 싶을 것입니다. 예를 들어, 영화관을 운영 중이고 18세 미만의 사람들이 영화관에서 영화를 보는 수를 알고 싶어할 수 있습니다.

filter() , 내장 함수를 사용하여 목록을 필터링하고 반복자를 반환할 수 있습니다. 다음은 filter()의 구문입니다. 방법:

필터(함수, iterable_object)

filter() 메소드는 두 개의 매개변수를 사용합니다:

참가자의 81%는 부트캠프에 참석한 후 기술 직업 전망에 대해 더 자신감을 느꼈다고 말했습니다. 지금 부트캠프에 참여하십시오.

부트캠프 졸업생은 부트캠프 시작부터 첫 직장을 찾는 데까지 6개월도 채 걸리지 않았습니다.

  • 기능 지정한 iterable의 각 항목에서 실행할 코드입니다(필수). 함수는 iterable이 True 또는 False를 반환하는지 확인합니다.
  • iterable_object 필터링할 개체입니다(필수).

지정한 iterable 객체는 Python lists와 같은 iterable이 될 수 있습니다. , sets , 및 tuples .

Python 필터 예제

이 방법을 사용할 수 있는 방법을 보여주기 위해 예제를 실행해 보겠습니다.

잡지 가판대를 운영 중이고 새 인벤토리를 주문해야 하는지 여부를 확인하려고 한다고 가정해 보겠습니다. 잡지가 20판 미만인 경우 새로 주문해야 합니다. 잡지가 20판 이상인 경우 새로 주문할 필요가 없습니다. 가지고 있는 잡지의 수량을 저장하는 숫자 목록이 있습니다.

잡지를 주문해야 하는지 여부를 확인하려면 다음 코드를 사용할 수 있습니다.

수량 =[25, 49, 21, 17, 14, 28]def checkQuantities(mags):mags <20:반환 True else:반환 Falsefiltered_mags =filter(checkQuantities,quantities)print(list(filtered_mags)) 

코드는 다음을 반환합니다. [17, 14]

코드를 분해해 보겠습니다. 첫 번째 줄에서 quantities라는 변수를 정의합니다. 인벤토리에 있는 각 잡지의 에디션 수를 저장합니다.

그런 다음 checkQuantities라는 함수를 정의합니다. 특정 잡지의 재고가 20판 미만인지 확인합니다. 에디션이 20개 미만인 경우 checkQuantities 함수는 True를 반환합니다. 그렇지 않으면 False를 반환합니다.

다음으로 filter()를 사용합니다. 메소드를 지정하고 checkQuantities를 지정합니다. 우리의 기능 및 quantities으로 우리의 iterable 객체로. 이것은 filter()에 알려줍니다. checkQuantities를 실행하는 메소드 수량 배열의 모든 항목에 대해.

그런 다음 filter()의 결과를 출력합니다. 메소드를 사용하고 list()를 사용합니다. 목록으로 변환합니다. 이것은 filter() 때문에 중요합니다. 목록이 아닌 필터링된 개체를 반환합니다. 따라서 데이터를 보려면 목록으로 변환해야 합니다.

보시다시피 코드는 17과 14의 두 값을 반환합니다. 이 값은 각각 20 미만이므로 프로그램이 의도한 대로 작동했습니다.

이 방법이 어떻게 작동하는지 보여주기 위해 다른 예를 살펴보겠습니다. 우리가 댄스 강사이고 7세에서 10세를 포함하여 7세에서 10세 사이인 우리 반의 모든 사람의 나이를 알고 싶다고 가정해 봅시다. 다음 코드를 사용하여 이 데이터를 얻을 수 있습니다.

student_ages =[7, 9, 8, 10, 11, 11, 8, 9, 12]def checkAges(age):연령>=7이고 연령 <=10인 경우:True 반환 else:반환 Falsefiltered_ages =filter( checkAges, student_ages)print(list(filtered_ages))

코드는 다음을 반환합니다. [7, 9, 8, 10, 8, 9] . 보시다시피, 우리 프로그램은 7세와 10세를 모두 포함하여 목록 요소에서 7세에서 10세 사이의 학생들을 걸러냈습니다. 결과 목록에는 필터링된 데이터가 포함됩니다.

람다를 사용한 Python 필터

필터 작업을 보다 효율적으로 만들기 위해 목록 맵 Lambda 함수를 사용할 수 있습니다. Lambda는 이름 없이 정의된 특수 함수이며 Python에서 짧은 한 줄짜리 익명 함수를 작성하는 데 사용할 수 있습니다.

따라서 위의 잡지 수량 예를 들어 보겠습니다. 그 예에서 우리는 잡지의 재고가 20개 미만인지 확인하고 filter()를 사용하는 함수를 만들었습니다. 매거진 목록에서 해당 기능을 실행합니다. 그런 다음 프로그램에서 20판 미만의 모든 잡지 목록을 반환했습니다.

Lambda 함수를 사용하여 이와 동일한 작업을 더 효율적으로 수행할 수 있습니다. 사용할 수 있는 코드는 다음과 같습니다.

수량 =[25, 49, 21, 17, 14, 28]filtered_mags =filter(lambda mag:mag <20, quantity)print(list(filtered_mags))

코드는 다음을 반환합니다. [17, 14] .

보시다시피 출력은 동일하지만 코드가 훨씬 더 짧습니다. 전체 함수를 정의하는 대신 Lambda를 사용하여 한 줄 함수를 정의했습니다.

이 한 줄 함수는 재고가 20개 미만인지 확인하고 filter()에 True를 반환합니다. 만약 그렇다면 iterator. 실행 후 프로그램은 17과 14의 두 값이 있는 목록을 반환합니다.

결론

파이썬 filter() 함수를 사용하여 미리 정의된 기준 세트를 기반으로 반복 가능한 객체를 필터링하고 필터링된 반복 가능한 항목을 반환할 수 있습니다. 이 방법은 특정 기준을 충족하는 값만 검색하려는 데이터 목록이 있는 경우에 유용할 수 있습니다.

이 가이드에서는 filter()의 구문에 대해 논의했습니다. 방법 및 Python에서 사용할 수 있는 방법. filter()의 몇 가지 예를 살펴보았습니다. 실제로 filter() Python Lambda 함수와 함께 사용하여 코드를 보다 효율적으로 만들 수 있습니다.

이제 filter()를 사용하는 데 필요한 정보를 갖추었습니다. 파이썬 전문가처럼!