Python-filter ()

Filter () metoden konstruerer en iterator fra elementer i en iterabel som en funksjon returnerer true.

I enkle ord filter()filtrerer metoden den gitte iterabelen ved hjelp av en funksjon som tester hvert element i iterabelen for å være sant eller ikke.

Syntaksen for filter()metoden er:

 filter (funksjon, iterabel)

filter () Parametere

filter() metoden tar to parametere:

  • funksjon - funksjon som tester om elementer i en iterabel returnerer sant eller usant
    Hvis ingen, er funksjonen som standard identitetsfunksjon - som returnerer usann hvis noen elementer er falske
  • iterable - iterable som skal filtreres, kan være sett, lister, tupler eller beholdere av alle iteratorer

Returverdi fra filter ()

filter() metoden returnerer en iterator som har bestått funksjonskontrollen for hvert element i iterabelen.

filter() metoden tilsvarer:

 # når funksjon er definert (element for element i iterabel hvis funksjon (element)) # når funksjon er Ingen (element for element i iterabel hvis element)

Eksempel 1: Hvordan fungerer filter () for iterabel liste?

 # list of letters letters = ('a', 'b', 'd', 'e', 'i', 'j', 'o') # function that filters vowels def filterVowels(letter): vowels = ('a', 'e', 'i', 'o', 'u') if(letter in vowels): return True else: return False filteredVowels = filter(filterVowels, letters) print('The filtered vowels are:') for vowel in filteredVowels: print(vowel)

Produksjon

 De filtrerte vokalene er: aeio 

Her har vi en liste over bokstaver og trenger å filtrere ut bare vokalene i den.

Vi kan bruke en for-loop til å gå gjennom hvert element i bokstavlisten og lagre den i en annen liste, men i Python er denne prosessen enklere og raskere ved hjelp av filter()metoden.

Vi har en funksjon filterVowelssom sjekker om en bokstav er en vokal eller ikke. Denne funksjonen overføres til filter()metoden med bokstavlisten.

filter()metoden sender deretter hver bokstav til filterVowels()metoden for å sjekke om den returnerer sant eller ikke. Til slutt skaper det en iterator av de som returnerer sanne (vokaler).

Siden iteratoren ikke lagrer verdiene i seg selv, løper vi gjennom den og skriver ut vokaler en etter en.

Eksempel 2: Hvordan fungerer filter () -metoden uten filterfunksjonen?

 # random list randomList = (1, 'a', 0, False, True, '0') filteredList = filter(None, randomList) print('The filtered elements are:') for element in filteredList: print(element)

Produksjon

 De filtrerte elementene er: 1 a True 0 

Her har vi en tilfeldig liste over tall, streng og boolsk i randomList.

Vi overfører randomList til filter()metoden med første parameter (filterfunksjon) som Ingen.

Med filterfunksjon som Ingen, er funksjonen som standard identitetsfunksjon, og hvert element i randomList blir sjekket om det er sant eller ikke.

Når vi går gjennom den endelige filtrerte listen, får vi elementene som er sanne: 1, a, True and '0'('0' som en streng også er sant).

Interessante artikler...