Python-filter ()

Metoden filter () konstruerar en iterator från element i en iterabel för vilken en funktion returnerar true.

I enkla ord filter()filtrerar metoden den givna iterabel med hjälp av en funktion som testar varje element i iterable för att vara sant eller inte.

Syntaxen för filter()metoden är:

 filter (funktion, iterabel)

filter () Parametrar

filter() metoden tar två parametrar:

  • funktion - funktion som testar om element i en iterabel returnerar true eller false
    Om ingen, är funktionen som standard identitetsfunktion - som returnerar falsk om några element är falska
  • iterable - iterable som ska filtreras, kan vara uppsättningar, listor, tuples eller behållare för alla iteratorer

Returvärde från filter ()

filter() metoden returnerar en iterator som passerat funktionskontrollen för varje element i iterabeln.

filter() metoden motsvarar:

 # när funktion är definierad (element för element i iterabel om funktion (element)) # när funktion är Ingen (element för element i iterabel om element)

Exempel 1: Hur fungerar filter () för iterabel lista?

 # 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 filtrerade vokalerna är: aeio 

Här har vi en lista med bokstäver och behöver bara filtrera bort vokalerna i den.

Vi kan använda en for-loop för att slinga igenom varje element i bokstavslistan och lagra den i en annan lista, men i Python är den här processen enklare och snabbare med filter()metoden.

Vi har en funktion filterVowelssom kontrollerar om en bokstav är en vokal eller inte. Denna funktion överförs till filter()metod med bokstavslistan.

filter()metod skickar sedan varje bokstav till filterVowels()metoden för att kontrollera om den returnerar sant eller inte. I slutändan skapar det en iterator av de som returnerar sanna (vokaler).

Eftersom iteratorn inte lagrar värdena själva slingrar vi igenom den och skriver ut vokaler en efter en.

Exempel 2: Hur fungerar filter () -metoden utan 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 filtrerade elementen är: 1 a True 0 

Här har vi en slumpmässig lista med siffror, strängar och booleska i randomList.

Vi skickar randomList till filter()metoden med den första parametern (filterfunktion) som Ingen.

Med filterfunktionen som Ingen, är funktionen som standard identitetsfunktionen, och varje element i randomList kontrolleras om det är sant eller inte.

När vi slingrar igenom den slutliga filtrerade listan får vi de element som är sanna: 1, a, True and '0'('0' eftersom en sträng också är sant).

Intressanta artiklar...