Zuordnen, Filtern und Reduzieren von Funktionen in Python: Alles, was Sie wissen müssen



Erfahren Sie, was in Python die Funktionen map (), filter () und redu () sind. Wissen auch, wie man sie mit Lambda und benutzerdefinierten Funktionen und zusammen verwendet.

Python bietet viele integrierte Funktionen, die vordefiniert sind und vom Endbenutzer durch einfaches Aufrufen verwendet werden können. Diese Funktionen erleichtern nicht nur die Arbeit der Programmierer, sondern schaffen auch eine Standardcodierungsumgebung. In diesem Artikel lernen Sie drei solcher beeindruckenden Funktionen kennen, nämlich map (), filter und redu () in .

Bevor wir fortfahren, werfen wir einen Blick auf den Inhalt:





Also lasst uns anfangen. :) :)

Was sind die Funktionen map (), filter () und redu () in Python?

Wie bereits erwähnt, sind map (), filter () und redu () integriert von Python. Diese Funktionen ermöglichen den funktionalen Programmieraspekt von . Bei der funktionalen Programmierung sind die übergebenen Argumente die einzigen Faktoren, die über die Ausgabe entscheiden. Diese Funktionen können jede andere Funktion als Parameter annehmen und auch anderen Funktionen als Parameter zur Verfügung gestellt werden. Schauen wir uns nun jede dieser Funktionen genauer an.



Die map () Funktion:

Die map () -Funktion ist eine Art höherer Ordnung. Wie bereits erwähnt, nimmt diese Funktion eine andere Funktion als Parameter zusammen mit einer Folge von Iterablen und gibt eine Ausgabe zurück, nachdem die Funktion auf jede in der Folge vorhandene Iteration angewendet wurde. Die Syntax lautet wie folgt:

SYNTAX:

map (Funktion, iterables)



Hier definiert die Funktion einen Ausdruck, der wiederum auf die Iterables angewendet wird. Die Kartenfunktion kann sowohl benutzerdefinierte Funktionen als auch Funktionen übernehmen Lambda-Funktionen als Parameter.

Verwenden von benutzerdefinierten und Lambda-Funktionen in:

Benutzerdefinierte Funktionen in map ():

Die Funktion map () kann benutzerdefinierte Funktionen als Parameter verwenden. Die Parameter dieser Funktionen werden ausschließlich vom Benutzer oder vom Programmierer festgelegt. Beispielsweise:

BEISPIEL:

def newfunc (a): return a * a x = map (newfunc, (1,2,3,4)) #x ist das Kartenobjekt print (x) print (set (x))

AUSGABE:

{16, 1, 4, 9}

Wie Sie sehen können, ist x ein Kartenobjekt. Die nächste Teilausgabe zeigt die Map-Funktion an, die newfunc () als Parameter verwendet, und wendet dann das a * a auf alle iterablen Elemente an. Infolgedessen werden die Werte aller iterablen Elemente mit sich selbst multipliziert und zurückgegeben.

HINWEIS: Die Ausgabe ist nicht in der Reihenfolge der Werte der Iterables, da ich die Funktion set () verwendet habe. Sie können auch die Funktionen list () oder tuple () verwenden, zum Beispiel:

BEISPIEL:

def newfunc (a): return a * a x = map (newfunc, (1,2,3,4)) #x ist das Kartenobjekt print (x) print (Liste (x))

AUSGABE:

[1, 4, 9, 16]

Sie können auch mehr als eine Liste von Parametern übergeben. Beispielsweise:

BEISPIEL:

def func (a, b): return a + b a = map (func, [2, 4, 5], [1,2,3]) print (a) print (tuple (a))

AUSGABE:

(3, 6, 8)

Lassen Sie uns nun sehen, wie Sie verwenden können Lambda-Funktionen innerhalb der map () Funktion.

Lambda-Funktionen in map ():

Lambda-Funktionen sind Funktionen, die einen beliebigen Namen haben. Diese Funktionen werden häufig als Parameter für andere Funktionen bereitgestellt. Versuchen wir nun, Lambda-Funktionen in die map () -Funktion einzubetten. Betrachten Sie das folgende Beispiel:

BEISPIEL:

tup = (5, 7, 22, 97, 54, 62, 77, 23, 73, 61) newtuple = tuple (map (lambda x: x + 3, tup)) print (newtuple)

AUSGABE:

(8, 10, 25, 100, 57, 65, 80, 26, 76, 64)

Die obige Ausgabe ist ein Ergebnis der Anwendung des Lambda-Ausdrucks (x + 3) auf jedes im Tupel vorhandene Element.

Die Funktion filter ():

Mit der Funktion filter () wird eine Ausgabeliste erstellt, die aus Werten besteht, für die die Funktion true zurückgibt. Die Syntax lautet wie folgt:

SYNTAX:

Filter (Funktion, iterables)

Genau wie map () kann diese Funktion verwendet werden, um sowohl benutzerdefinierte Funktionen als auch Lambda-Funktionen als Parameter zu verwenden.

BEISPIEL:

def func (x): wenn x> = 3: return x y = filter (func, (1,2,3,4)) print (y) print (list (y))

AUSGABE:

[3. 4]

Wie Sie sehen können, ist y das Filterobjekt und die Liste ist eine Liste von Werten, die für die Bedingung zutreffen (x> = 3).

Verwenden von Lambda in filter ():


Die als Parameter verwendete Lambda-Funktion definiert tatsächlich die zu prüfende Bedingung. Beispielsweise:

BEISPIEL:

y = Filter (Lambda x: (x> = 3), (1,2,3,4)) Drucken (Liste (y))

AUSGABE: [3. 4]

Der obige Code erzeugt die gleiche Ausgabe wie die vorherige Funktion.

Pojo-Klasse in Java mit Beispiel

Die Funktion redu ():

Die Funktion redu () wendet, wie der Name beschreibt, eine bestimmte Funktion auf die Iterables an und gibt einen einzelnen Wert zurück.

Reduce-Map Reduce Filter-Edureka

Die Syntax dieser Funktion lautet wie folgt:

SYNTAX:

reduzieren (Funktion, iterables)

Die Funktion hier definiert, welcher Ausdruck auf die Iterables angewendet werden muss. Diese Funktion muss aus den functools importiert werden Modul . Beispielsweise:

BEISPIEL:

aus functools import reduzieren reduzieren (Lambda a, b: a + b, [23,21,45,98])

AUSGABE: 187

Im obigen Beispiel fügt die Reduzierungsfunktion nacheinander jedes in der Liste vorhandene iterable hinzu und gibt eine einzelne Ausgabe zurück.

Die Funktionen map (), filter () und redu () in Python können zusammen verwendet werden.

Verwenden Sie die Funktionen map (), filter () und redu () zusammen:

Wenn Sie dies tun, werden zuerst die internen Funktionen gelöst und dann wirken die äußeren Funktionen auf den Ausgang der internen Funktionen.

Versuchen wir zunächst, die Funktion filter () als Parameter an die Funktion map () zu übergeben.

Verwenden von filter () in map ():

Der unten angegebene Code prüft zunächst, ob die Bedingung (x> = 3) für die Iterablen wahr ist. Anschließend wird die Ausgabe mit der Funktion map () zugeordnet.

BEISPIEL:

c = Karte (Lambda x: x + x, Filter (Lambda x: (x> = 3), (1,2,3,4))) drucken (Liste (c))

AUSGABE: [6, 8]

Wenn Sie aus dem angegebenen Tupel ganze Zahlen größer oder gleich 3 herausfiltern, erhalten Sie als Ergebnis [3,4]. Wenn Sie dies dann mit der Bedingung (x + x) abbilden, erhalten Sie [6,8], die Ausgabe.

Verwenden von map () in filter ():


Wenn Sie die map () -Funktion innerhalb der filter () -Funktion verwenden, werden die Iterables zuerst von der map-Funktion bearbeitet und dann auf sie die Bedingung von filter () angewendet.

BEISPIEL:

c = Filter (Lambda x: (x> = 3), Karte (Lambda x: x + x, (1,2,3,4)) #lambda x: (x> = 3) print (Liste (c) )

AUSGABE: [4, 6, 8]

Verwenden von map () und filter () in redu ():

Die Ausgabe der internen Funktionen wird gemäß der Bedingung reduziert, die für die Funktion redu () bereitgestellt wird.

BEISPIEL:

d = reduzieren (Lambda x, y: x + y, Karte (Lambda x: x + x, Filter (Lambda x: (x> = 3), (1,2,3,4)))) drucken (d)

AUSGABE: 14

Die Ausgabe ist ein Ergebnis von [6,8], das das Ergebnis der internen Funktionen map () und filter () ist.

Damit haben wir das Ende dieses Artikels über map (), filter () und Reduktionsfunktionen in Python erreicht. Ich hoffe du hast alles klar verstanden. Stellen Sie sicher, dass Sie so viel wie möglich üben und Ihre Erfahrung zurücksetzen.

Hast du eine Frage an uns? Bitte erwähnen Sie es im Kommentarbereich dieses Blogs „map (), filter () und redu () Functions in Python“. Wir werden uns so schnell wie möglich bei Ihnen melden.

Um detaillierte Informationen zu Python und seinen verschiedenen Anwendungen zu erhalten, können Sie sich live anmelden mit 24/7 Support und lebenslangem Zugriff.