Python-filter ()

Metoden filter () konstruerer en iterator ud fra elementer i en iterabel, for hvilken en funktion returnerer sand.

I enkle ord filter()filtrerer metoden den givne iterabel ved hjælp af en funktion, der tester hvert element i iterablen for at være sand eller ej.

Syntaksen for filter()metoden er:

 filter (funktion, iterabel)

filter () Parametre

filter() metoden tager to parametre:

  • funktion - funktion, der tester, om elementer i en iterabel returnerer sand eller falsk
    Hvis ingen, er funktionen som standard identitetsfunktion - som returnerer falsk, hvis nogen elementer er falske
  • iterable - iterable, der skal filtreres, kunne være sæt, lister, tupler eller containere af enhver iterator

Returværdi fra filter ()

filter() metoden returnerer en iterator, der har bestået funktionskontrollen for hvert element i iterabelen.

filter() metoden svarer til:

 # når funktion er defineret (element for element i iterabel hvis funktion (element)) # når funktion er Ingen (element for element i iterabel hvis element)

Eksempel 1: Hvordan fungerer filter () til 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)

Produktion

 De filtrerede vokaler er: aeio 

Her har vi en liste over bogstaver og skal kun filtrere vokalerne i den ud.

Vi kunne bruge en for-løkke til at løbe gennem hvert element i bogstavlisten og gemme det på en anden liste, men i Python er denne proces lettere og hurtigere ved hjælp af filter()metoden.

Vi har en funktion, filterVowelsder kontrollerer, om et bogstav er en vokal eller ikke. Denne funktion overføres til filter()metoden med bogstavlisten.

filter()metode sender derefter hvert bogstav til filterVowels()metoden for at kontrollere, om det returnerer sandt eller ej. I sidste ende skaber det en iterator af dem, der returnerer sand (vokaler).

Da iteratoren ikke gemmer værdierne selv, løber vi igennem den og udskriver vokaler en efter en.

Eksempel 2: Hvordan fungerer filter () -metoden uden filterfunktionen?

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

Produktion

 De filtrerede elementer er: 1 a Ægte 0 

Her har vi en tilfældig liste over tal, streng og boolsk i randomList.

Vi sender randomList til filter()metoden med første parameter (filterfunktion) som Ingen.

Med filterfunktion som Ingen er funktionen som standard identitetsfunktion, og hvert element i randomList kontrolleres, om det er sandt eller ej.

Når vi løber gennem den endelige filtrerede liste, får vi de elementer, der er sande: 1, a, True and '0'('0', da en streng også er sand).

Interessante artikler...