logo

filter() in Python

Die filter()-Methode filtert die gegebene Sequenz mit Hilfe einer Funktion, die jedes Element in der Sequenz darauf prüft, ob es wahr ist oder nicht.

Python filter()-Syntax

Die filter()-Methode in Python hat die folgende Syntax:



Syntax: Filter(Funktion, Sequenz)

Parameter:

Byte-Array in String umwandeln
  • Funktion: Funktion, die prüft, ob jedes Element einer Sequenz wahr ist oder nicht.
  • Reihenfolge: Sequenz, die gefiltert werden muss. Dabei kann es sich um Mengen, Listen, Tupel oder Container beliebiger Iteratoren handeln.

Kehrt zurück: ein Iterator, der bereits gefiltert ist.



Beispiele für Python-Filterfunktionen

Sehen wir uns einige Beispiele der Funktion filter() in Python an.

Python-Filterfunktion mit einer benutzerdefinierten Funktion

In diesem Beispiel verwenden wir die Filterfunktion zusammen mit einer benutzerdefinierten Funktion Spaß() um Vokale aus dem herauszufiltern Python-Liste .

Python






for-Schleife im Shell-Skript
# function that filters vowels> def> fun(variable):> >letters>=> [>'a'>,>'e'>,>'i'>,>'o'>,>'u'>]> >if> (variable>in> letters):> >return> True> >else>:> >return> False> # sequence> sequence>=> [>'g'>,>'e'>,>'e'>,>'j'>,>'k'>,>'s'>,>'p'>,>'r'>]> # using filter function> filtered>=> filter>(fun, sequence)> print>(>'The filtered letters are:'>)> for> s>in> filtered:> >print>(s)>

>

>

Ausgabe:

The filtered letters are: e e>

Filterfunktion in Python mit Lambda

Die Python-Funktion filter() wird normalerweise mit verwendet Lambda-Funktionen . In diesem Beispiel verwenden wir die Lambda-Funktion, um die ungeraden und geraden Zahlen aus einer Liste herauszufiltern.

Python3




# a list contains both even and odd numbers.> seq>=> [>0>,>1>,>2>,>3>,>5>,>8>,>13>]> # result contains odd numbers of the list> result>=> filter>(>lambda> x: x>%> 2> !>=> 0>, seq)> print>(>list>(result))> # result contains even numbers of the list> result>=> filter>(>lambda> x: x>%> 2> =>=> 0>, seq)> print>(>list>(result))>

>

Python-Sortierwörterbuch
>

Ausgabe:

[1, 3, 5, 13] [0, 2, 8]>

Filterfunktion in Python mit Lambda und benutzerdefinierter Funktion

In diesem Programm verwenden wir beide benutzerdefinierten Funktionen is_multiple_of_3() sowie eine Lambda-Funktion. Die Funktion filter() wird verwendet, um diese Funktion auf jedes Element der Zahlenliste anzuwenden, und die Lambda-Funktion wird verwendet, um jedes Element der Liste zu durchlaufen, bevor die Bedingung angewendet wird. Auf diese Weise können wir an jedem Element zusätzliche Operationen durchführen, bevor wir die Bedingung anwenden.

Python3




# Define a function to check> # if a number is a multiple of 3> def> is_multiple_of_3(num):> >return> num>%> 3> =>=> 0> # Create a list of numbers to filter> numbers>=> [>1>,>2>,>3>,>4>,>5>,>6>,>7>,>8>,>9>,>10>]> # Use filter and a lambda function to> # filter the list of numbers and only> # keep the ones that are multiples of 3> result>=> list>(>filter>(>lambda> x: is_multiple_of_3(x), numbers))> # Print the result> print>(result)>

>

>

Ausgabe

Methoden in Java
[3, 6, 9]>

Zeitkomplexitätsanalyse

  1. Die Filterfunktion dient zum Filtern der Zahlenliste und wendet die Lambda-Funktion auf jedes Element der Liste an. Die zeitliche Komplexität der Filterfunktion beträgt O(n), wobei n die Anzahl der Elemente in der Liste ist.
  2. Die zeitliche Komplexität der Lambda-Funktion ist konstant, O(1), da sie nur eine einzige arithmetische Operation ausführt. Daher beträgt die Gesamtzeitkomplexität des Programms O(n).

Hilfsraumanalyse

Das Programm verwendet eine Liste zum Speichern der gefilterten Zahlen, sodass die Speicherplatzkomplexität proportional zur Anzahl der gefilterten Zahlen ist. Im schlimmsten Fall, wenn alle Zahlen Vielfache von 3 sind, enthält die gefilterte Liste n/3 Elemente. Daher beträgt die Raumkomplexität O(n/3), was sich in der Big-O-Notation zu O(n) vereinfacht.