Die filter()-Methode und Lambda-Funktionen in Python

Vaibhav Vaibhav 8 April 2022
Die filter()-Methode und Lambda-Funktionen in Python

Wenn wir mit iterierbaren Datenstrukturen wie Arrays, Listen und Tupeln arbeiten, müssen wir oft Filteroperationen über sie durchführen.

Filtern bezieht sich auf das Herausnehmen der Werte, die einer bestimmten Bedingung entsprechen. Man kann eine Filterung durchführen, indem man über den iterierbaren Datenstrukturwert und -wert unter Verwendung einer for-Schleife oder einer while-Schleife iteriert und prüft, ob das Element die Bedingung erfüllt oder nicht.

Da dies eine häufige Aufgabe ist, hat die Programmiersprache Python eine eingebaute Methode, filter(). Diese Methode benötigt eine Funktion, um eine Filterung durchzuführen.

Im Allgemeinen werden für diese Aufgabe lambda-Methoden in Betracht gezogen, da sie einfach zu schreiben sind. Dieser Artikel zeigt, wie man die filter()-Methode und lambda-Funktionen zusammen in Python verwendet.

Die filter()-Methode und lambda-Funktionen in Python

Die filter-Methode ist eine eingebaute Methode in der Programmiersprache Python, die verwendet wird, um Elemente aus einem Iterable zu filtern, die eine bestimmte Bedingung erfüllen. Eine Funktion stellt die Bedingung dar, und die Werte, für die die Funktion True zurückgibt, werden im Ergebnis berücksichtigt.

Der filter() akzeptiert zwei Parameter; eine Funktion zum Filtern, die einen booleschen Wert und ein iterierbares Objekt wie eine Liste oder ein Tupel zurückgibt. Die Methode filter() ist ein Iterator oder Filterobjekt.

Wir müssen den Iterator mit der Methode list() oder der Methode tuple() in eine Liste oder ein Tupel umwandeln. Die lambda-Funktionen sind Inline- und anonyme Funktionen in Python.

Diese Funktionen können zusammen mit der filter-Methode verwendet werden.

Die lambda-Funktionen haben die folgende Syntax.

lambda < parameters > : < expression >

Parameter sollten durch Kommas getrennt werden und der Ausdruck sollte ein boolesches Ergebnis zurückgeben (True oder False).

Lassen Sie uns anhand eines einfachen Beispiels verstehen, wie man die beiden zusammen verwendet. Siehe dazu den folgenden Python-Code.

array = [11, 23, 13, 4, 15, 66, 7, 8, 99, 10]
new_array = list(filter(lambda x: x <= 20, array))
print("Old Array:", array)
print("New Array:", new_array)

Ausgabe:

Old Array: [11, 23, 13, 4, 15, 66, 7, 8, 99, 10]
New Array: [11, 13, 4, 15, 7, 8, 10]

Der obige Python-Code filtert alle Werte aus der Liste der Integer, array, die kleiner oder gleich 20 sind.

Jeder Wert der Liste wird an die lambda-Funktion übergeben. Wenn es True zurückgibt, wird der Wert zum Ergebnis hinzugefügt; ansonsten nicht.

Sobald das Ergebnis in einem Iterator erhalten wurde, wird es mit der eingebauten list()-Methode in eine Liste umgewandelt. Zuletzt werden beide Arrays an die Konsole ausgegeben.

Beispiele

Im Folgenden finden Sie einige Beispiele, um die gemeinsame Verwendung der filter()-Methode und der lambda-Funktionen zu verstehen.

Filtern aller geraden Zahlen aus einer Liste von Ganzzahlen

array = [1, 2, 3, 4, 5, 66, 77, 88, 99, 100]
new_array = list(filter(lambda x: x % 2 == 0, array))
print("Old Array:", array)
print("New Array:", new_array)

Ausgabe:

Old Array: [1, 2, 3, 4, 5, 66, 77, 88, 99, 100]
New Array: [2, 4, 66, 88, 100]

Filtern Sie alle ungeraden Zahlen aus einer Liste von ganzen Zahlen

array = [1, 2, 3, 4, 5, 66, 77, 88, 99, 100]
new_array = list(filter(lambda x: x % 2 == 1, array))
print("Old Array:", array)
print("New Array:", new_array)

Ausgabe:

Old Array: [1, 2, 3, 4, 5, 66, 77, 88, 99, 100]
New Array: [1, 3, 5, 77, 99]

Filtern aller Strings der Länge 5 aus einer Liste von Strings

array = [
    "hello",
    "python",
    "world",
    "walking",
    "sleep",
    "shelter",
    "food",
]
new_array = list(filter(lambda x: len(x) == 5, array))
print("Old Array:", array)
print("New Array:", new_array)

Ausgabe:

Old Array: ['hello', 'python', 'world', 'walking', 'sleep', 'shelter', 'food']
New Array: ['hello', 'world', 'sleep']

Filterung aller Zahlen im Bereich [10, 20] aus einer Liste von Ganzzahlen

array = [11, 23, 13, 4, 15, 66, 7, 8, 99, 10]
new_array = list(filter(lambda x: 10 <= x <= 20, array))
print("Old Array:", array)
print("New Array:", new_array)

Ausgabe:

Old Array: [11, 23, 13, 4, 15, 66, 7, 8, 99, 10]
New Array: [11, 13, 15, 10]
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Verwandter Artikel - Python Function

Verwandter Artikel - Python Lambda