Es gibt drei Grundfunktionen in Python, nämlich filter(), map() und Reduce(). Sie stellen uns jeweils Filter-, Zuordnungs- und Aggregationsfunktionen zur Verfügung. Im vorherigen Abschnitt haben wir einfach die Funktion filter() in Kombination mit einer anonymen Funktion verwendet. Nachfolgend stellen wir deren Verwendung im Detail vor.
Beim Filtern und Filtern von Daten verwenden wir normalerweise die Funktion filter (), um das Problem schnell zu lösen. Ihr Syntaxformat lautet:
Filter(Funktion, iterierbares Objekt)
Platzieren Sie in der Filterfunktion unsere Filter- oder Filtermethode, also den Funktionsnamen , im Vordergrund und speichern Sie das iterierbare Objekt im Hintergrund. Schauen wir uns das folgende Beispiel an:
deftest(x):ifx%2==0:returnxmy_list=[1,2,3,4,5,6]print(filter(test,my_list))#Es werden nur einige Funktionsnamen benötigt, es werden keine Parameter benötigt
Ausgabeergebnis:
<filterobjectat0x034C2DD8>
In Bezug auf dieses Beispiel definieren wir zunächst eine test()-Funktion, die ihren Wert zurückgibt, wenn x eine gerade Zahl ist, und verwenden dann die test()-Funktion, um die my_list-Liste durch die filter()-Funktion zu filtern, aber das Ausgabeergebnis ist < Filterobjekt bei 0x034C2DD8> Hier müssen wir beachten, dass der Rückgabewert der Funktion filter() ein iterierbares Objekt ist und wir iterativ auf die Werte zugreifen oder die Funktion list() verwenden müssen, um die Typkonvertierung zu erzwingen.
deftest(x):ifx%2==0:returnxmy_list=[1,2,3,4,5,6]print(filter(test,my_list))foriinfilter(test,my_list):print('after iteration Daten: ',i)print('List()-Methode verwenden:',list(filter(test,my_list)))
Die Ausgabe ist:
Daten in der Iteration: 2 Daten in der Iteration: 4 Daten in der Iteration: 6 Verwendung der list()-Methode: [2, 4, 6]
Wir haben die Funktion „map()“ schon oft verwendet. Wenn wir beispielsweise mehrere Werte eingeben, verwenden wir die Funktion „map()“, wenn wir vier Werte eingeben müssen.
a,b,c,d=map(int,input().split())print(a,b,c,d)
Das Syntaxformat der Funktion map() lautet:
Karte (Funktion, iterierbares Objekt)
Wenn wir die Funktion „map()“ verwenden, verwenden wir sie hauptsächlich zur Datenverarbeitung. Die Daten im iterierbaren Objekt werden nach der Verarbeitung durch die Funktion gespeichert. Wir verwenden weiterhin die Funktion „list()“ zur Speicherung.
Schauen wir uns zunächst das obige Beispiel für die Eingabe von vier Werten an. Int ist eine Funktion, und der von input().splite eingegebene Wert ist ein iterierbares Objekt, das nach der Verarbeitung durch die int-Funktion im Kartenobjekt gespeichert wird.
Wir können die Funktion map() verwenden, um alle Daten in einer Sequenz über eine Funktion zu verarbeiten, siehe folgendes Beispiel:
Wir speichern die Buchstaben in einer Liste, und wenn ein Kleinbuchstabe vorhanden ist, machen wir ihn zu einem Großbuchstaben.
Der Code lautet wie folgt:
deftest(x):ifx.islower():returnx.upper()else:returnxmy_list=['d','o','t','C','p','P']print(list(map (test,my_list)))
Die Ausgabe ist:
['D','O','T','C','P','P']
Die Funktion test() beurteilt zunächst x. Wenn es ein Kleinbuchstabe ist, gibt sie seinen Großbuchstaben zurück. Wenn es kein Kleinbuchstabe ist, gibt sie seinen Wert zurück.
Die Funktion „reduce()“ wird verwendet, um iterierbare Objekte durch funktionale Methoden zu aggregieren.
Das Syntaxformat ist:
reduce(Funktion, iterierbares Objekt[, Anfangswert])
Wir wissen beispielsweise, dass eine Liste [1,2,3,4] ist, und wir müssen die Summe aller Elemente in der Liste nacheinander multiplizieren. Wir können die Funktion „reduce()“ verwenden.
fromfunctoolsimportreduce#reduce-Funktion ist im Functools-Modul definiert und muss eingeführt werden deftest(x,y):returnx*ymy_list=[1,2,3,4]print(reduce(test,my_list))
Die Ausgabe ist:
Die erste Codezeile stellt diese Methode vor, und das Modul wird später erklärt. Die Funktion test() gibt zwei zu multiplizierende Daten zurück, und dann wird die Liste my_list über die Funktion Reduce() verarbeitet.
Der Verarbeitungsprozess ist wie folgt:
Führen Sie zuerst den ersten Schritt aus, erhalten Sie dann ein Ergebnis, multiplizieren Sie es mit dem nächsten und gehen Sie dann zur letzten Ziffer.
Die ersten beiden dieser drei Funktionen werden häufig verwendet. Die Beherrschung dieser drei Funktionen kann uns bei der Lösung einer Reihe komplexer Probleme helfen. Im nächsten Abschnitt werden wir etwas über rekursive Funktionen lernen.