In diesem Tutorial erfahren Sie, wie Sie die verwenden Python map()-Funktion um eine Funktion auf alle Elemente eines Iterablen anzuwenden.
Python unterstützt die funktionale Programmierung Paradigma, mit dem Sie Aufgaben programmgesteuert als Berechnung von Funktionen definieren können. Sie können Python-Funktionen als Objekte behandeln: Eine Funktion kann eine andere Funktion als Parameter annehmen und eine andere Funktion zurückgeben.
Die map()
function übernimmt eine Funktion als Argument und lässt Sie sie auf alle Elemente in einer Sequenz anwenden.
Am Ende dieses Tutorials können Sie Python verwenden map()
Funktion — um ausführliche Schleifen neu zu schreiben und Verständnisse aufzulisten. Sie werden mehrere Beispiele codieren, um die verschiedenen Möglichkeiten zu verstehen, wie Sie die verwenden können map()
Funktion.
How to Apply a Function to Elements of a Python List

Beginnen wir unsere Diskussion mit einem Beispiel.👩🏫
Hier nums
ist eine Zahlenliste.
nums = [2,4,3,7]
Betrachten Sie als nächstes die Funktion self_pow()
. Die Funktion self_pow()
nimmt eine Zahl als Argument und gibt die Zahl potenziert mit der Zahl selbst zurück: n**n.
In Python ist ** der Potenzierungsoperator. a**b gibt den Wert von a potenziert mit b, a zurückb.
def self_pow(n):
return n**n
MACHEN: Um eine neue Liste zu erstellen
nums_pow
durch Anwenden der Funktionself_pow()
zu jedem Element in der Listenums
.
For-Schleife verwenden
Dazu können Sie verwenden für Schleifen bei Python:
- Für jede Zahl in der
nums
Liste, rufen Sie die Funktion aufself_pow()
mitnum
als Argument. - Hängen Sie das Ergebnis des Funktionsaufrufs an die neue Liste an
nums_pow
.
nums_pow = []
for num in nums:
nums_pow.append(self_pow(num))
print(nums_pow)
In der Ausgabe jede Zahl nums
wird zu sich erhoben. Die Elemente darin nums_pow
Liste sind wie folgt: 22, 44, 33,77.
Output
[4, 256, 27, 823543]
Listenverständnis verwenden
Sie können dies prägnant machen mit Listenverständnis. Aus der obigen expliziten for-Schleife können wir den Ausgabeausdruck und die Liste identifizieren, die durchlaufen werden soll.

Wir können dann den generischen Listenverständnisausdruck ändern:
new_list = [<output expression> for item in iterable]
Der Listenverständnisausdruck zum Generieren der nums_pow
Liste ist wie folgt:
nums_pow = [self_pow(num) for num in nums]
print(nums_pow)
Die Ausgabe ist erwartungsgemäß die gleiche wie bei der Verwendung von for-Schleifen.
Output
[4, 256, 27, 823543]
Anstelle des Schleifen- und Listenverständnisses können Sie Python verwenden map()
Funktion mit einer prägnanten Syntax, die dabei hilft, die Funktion auf alle Elemente in einer Iterable anzuwenden. Beginnen wir damit, die Syntax der Kartenfunktion zu lernen.
Python map() Function Syntax

Die allgemeine Syntax zur Verwendung der Python map()
Funktion ist wie folgt:
map(function, iterable_1,[iterable_2,...,iterable_n])
Die map()
Funktion übernimmt mindestens zwei Argumente, a Funktion und ein wiederholbar.
In der obigen Syntax:
- Funktion bezeichnet eine Python-Funktion oder allgemein jede aufrufbare Python-Funktion. Dazu gehören benutzerdefinierte und integrierte Funktionen, Klassen, Instanz- und Klassenmethoden und mehr.
- wiederholbar ist ein beliebiges gültiges Python-Iterable, z. B. eine Liste, ein Tupel und eine Zeichenfolge.
- Die Funktion map() wendet die Funktion zu alles, Artikel in der wiederholbar
Was gibt die Funktion map() zurück?
Es gibt ein Kartenobjekt zurück. Anschließend können Sie das Kartenobjekt mithilfe der folgenden Syntax in eine Liste umwandeln: list(map(function,iterable)).
Je nach Anwendungsfall können Sie es in eine Python-Tupel.

Nun, da Sie die Syntax von Python gelernt haben map()
Funktion, beginnen wir mit der Codierung von Beispielen.
Sie sollten über Python 3.x verfügen, um diesem Tutorial folgen zu können. Andernfalls können Sie die Code-Snippets ausführen Geekflare-Online-Python-Editor.
How to Use map() Function with User-Defined Functions

#1. Zuvor hatten wir die angewendet self_pow()
Funktion zu jeder Zahl in der nums
aufführen. In der Syntax für map()
Funktion können wir die Funktion übergeben self_pow
und die Liste nums
als Argumente.
Hinweis: Sie sollten nur den Namen der Funktion und keinen Funktionsaufruf angeben. Verwenden self_pow
und nicht self_pow()
.
Die map()
Die Funktion gibt ein Kartenobjekt zurück.
print(map(self_pow,nums))
<map object at 0x7f7d315c14d0>
Wir können das Kartenobjekt dann mit der Funktion list() in eine Liste umwandeln, wie unten gezeigt.
nums_pow = list(map(self_pow,nums))
print(nums_pow)
Hier ist die Ausgabe, wo alle num
in nums
wird auf num abgebildetnum in nums_pow
Liste.
Output
[4, 256, 27, 823543]
#2. Betrachten Sie die folgende Funktion inch_to_cm()
das wandelt Zoll in Zentimeter um. 1 inch = 2.54 cm.
def inch_to_cm(inch):
return inch*2.54
Um die Zollwerte in die umzuwandeln inches
Liste auf Zentimeter, können Sie die verwenden map()
Funktion wie in der Codezelle unten gezeigt.
inches = [5.54,3.4,1,25,8.2]
cms = list(map(inch_to_cm,inches))
print(cms)
Die cms
Liste enthält die Zollwerte in Zentimetern.
Output
[14.0716, 8.636, 2.54, 63.5, 20.828]
How to Use map() Function with Built-In Functions

In diesem Abschnitt lernen wir die Verwendung map()
mit eingebauten Funktionen in Python.
#1. Die Liste strings
ist eine Liste von Programmiersprachen. Sie möchten eine neue Liste erstellen strings_upper
die die Zeichenfolgen der Programmiersprache in Großbuchstaben enthält.
strings = ['JavaScript','Rust','Python','Go']
Die eingebaute Zeichenfolgenmethode
.upper()
wirkt auf eine Zeichenfolge und gibt eine in Großbuchstaben formatierte Kopie zurück.
strings_upper = list(map(str.upper,strings))
print(strings_upper)
Die Liste strings_upper
schließt Zeichenfolgen in die Liste ein strings
in Großbuchstaben formatiert.
Output
['JAVASCRIPT', 'RUST', 'PYTHON', 'GO']
#2. Das eingebaute len()
Funktion in Python übernimmt eine Sequenz als Argument und gibt ihre Länge zurück. Um die Länge der einzelnen Saiten in der zu finden strings
Liste können wir die verwenden map()
Funktion und wenden Sie die Längenfunktion auf jede Zeichenfolge an, wie unten gezeigt.
strings_len = list(map(len,strings))
print(strings_len)
Output
[10, 4, 6, 2]
#3. Sie können die map()
Funktion mit anderen Sammlungen wie Tupeln.
Das folgende Beispiel enthält ein Tupel, das Informationen über die Anzahl der Schlafzimmer, die Gegend und die Stadt enthält, in der sich ein Haus befindet.
In Python ist das type()
Die Funktion gibt den Datentyp eines beliebigen Python-Objekts zurück. Um den Datentyp aller Elemente in diesem Tupel zu erhalten, können Sie die verwenden map()
Funktion zum Aufrufen der type
Funktion für jedes Tupelelement.
house = (2,758.5,'Bangalore')
house_elt_type = tuple(map(type,house))
print(house_elt_type)
Wir haben das Kartenobjekt in ein Tupel umgewandelt. Sie können auch in eine Liste oder eine andere Sammlung umwandeln.
In der Ausgabe unten sehen wir, dass die Datentypen von 2, 758.5 und Bangalore jeweils als „int“, „float“ und „str“ abgeleitet wurden.
Output
(<class 'int'>, <class 'float'>, <class 'str'>)
#4. In Python können Sie eingebaute Module importieren und verwenden Sie die in den Modulen definierten Funktionen.
Um die zu berechnen quadratisch Wurzel jeder Zahl in der nums
Liste können Sie die Quadratwurzelfunktion verwenden sqrt
aus dem Mathemodul.
import math
nums = [30,90,34,45,97]
nums_sqrt = list(map(math.sqrt,nums))
print(nums_sqrt)
Output
[5.477225575051661, 9.486832980505138, 5.830951894845301, 6.708203932499369, 9.848857801796104]
Die obige Ausgabe ist schwer zu analysieren und zu verfolgen. Möglicherweise möchten Sie jeden Quadratwurzelwert auf zwei Dezimalstellen runden.
So runden Sie eine Gleitkommazahl in Python
Lassen Sie uns eine Funktion definieren round_2()
das nimmt einen Gleitkommawert und rundet ihn auf zwei Dezimalstellen.
def round_2(num):
return round(num,2)
Jetzt können Sie die verwenden map()
funktion mit dem round_2
und nums_sqrt
Liste.
nums_sqrt_round = list(map(round_2,nums_sqrt))
print(nums_sqrt_round)
Output
[5.48, 9.49, 5.83, 6.71, 9.85]
Sie können auch verschachtelt verwenden map()
Funktionen, wobei die innere Abbildungsfunktion verwendet wird, um die Quadratwurzel zu berechnen list nums_sqrt
, und die äußere Abbildungsfunktion führt die Rundungsoperation durch.
nums_sqrt_round = list(map(round_2,list(map(math.sqrt,nums))))
print(nums_sqrt_round)
Output
[5.48, 9.49, 5.83, 6.71, 9.85]
Die Ausgaben sind bei beiden obigen Ansätzen identisch. Sie sollten jedoch sicherstellen, dass der Code lesbar und wartbar ist, wenn Sie Funktionen wie oben gezeigt verschachteln.
How to Use map() Function with Lambda Functions

In den vorherigen Abschnitten haben Sie gelernt, wie Sie Python verwenden map()
Funktion mit integrierten und benutzerdefinierten Funktionen. Sie lernen jetzt, wie Sie die Funktion map() mit Lambda-Funktionen verwenden, die in Python anonym sind.
Manchmal haben Sie eine Funktion, deren Hauptteil nur eine Codezeile enthält, und Sie müssen die Funktion möglicherweise nur einmal verwenden und dürfen sie nicht an anderer Stelle im Programm referenzieren. Sie können solche Funktionen definieren wie Lambda-Funktion bei Python.
Hinweis: lambda args: expression ist die allgemeine Syntax zur Verwendung von a Python-Lambda-Funktion.
#1. Betrachten Sie die folgende Liste strings
. Angenommen, Sie möchten eine Liste erhalten strings_rev
– enthält eine umgekehrte Kopie jeder der Zeichenfolgen.
strings = ['JavaScript','Rust','Python','Go']
Wir können Einen Python-String mit String Slicing umkehren.
Hinweis: Dies ist eine Verallgemeinerung des String-Slicing-Ausdrucks
str[start:stop:step]
.- Ohne das
start
undstop
-Werte beginnt das Slice am Anfang der Zeichenfolge und erstreckt sich bis zum Ende der Zeichenfolge.
– Negative Werte vonstep
gibt Slices beginnend am Ende der Zeichenfolge.
- Deswegen,str[::-1]
gibt eine umgekehrte Kopie von str zurück.
Sie können diese Lambda-Funktion verwenden: lambda x:x[::-1]
Innerhalb der Kartenfunktion, wie unten gezeigt.
strings_rev = list(map(lambda x:x[::-1],strings))
print(strings_rev)
Wie bei anderen Beispielen wandeln wir das Kartenobjekt in eine Liste um. In der Ausgabe sehen wir, dass jeder der Strings in den Listenstrings umgekehrt wurde.
Output
['tpircSavaJ', 'tsuR', 'nohtyP', 'oG']
#2. Im vorherigen Abschnitt haben wir die Quadratwurzel jeder Zahl in der Zahlenliste berechnet und dann jeden Quadratwurzelwert auf zwei Dezimalstellen gerundet.
Wir haben die Funktion genutzt round_2()
um dies zu tun. Schreiben wir die um round_2()
Funktion als Lambda-Funktion und verwenden Sie sie mit der map()
unten beschriebene Funktion.
nums_sqrt_round_l =list(map(lambda num:round(num,2),nums_sqrt))
print(nums_sqrt_round_l)
Wie unten zu sehen ist, ist die Ausgabe identisch mit der, die wir durch die Verwendung von erhalten haben round_2()
Funktion.
Output
[5.48, 9.49, 5.83, 6.71, 9.85]
How to Use map() Function with Multiple Iterables

In den Beispielen, die wir gesehen haben, haben wir eine Funktion auf alle Elemente genau einer Iterable angewendet.
Manchmal haben wir vielleicht Funktionen, die zwei oder mehr Argumente annehmen. In diesem Fall wird jedes Argument in einer Liste oder einer ähnlichen Sammlung gespeichert.
Wir können auch die Python-Funktion map() mit mehreren Listen verwenden.
#1. Betrachten Sie die folgende Funktion area()
das akzeptiert die length
und breadth
als Eingaben und gibt den Bereich zurück, length*breadth
.
def area(length,breadth):
return length*breadth
Die Länge und Breite verschiedener Rechtecke werden in zwei getrennten Listen gespeichert, lengths
und breadths
, Bzw.
lengths = [4,8,10,18]
breadths = [9,4,6,11]
Wir können das benutzen map()
Funktion, um die Bereichsfunktion auf die obigen Listen anzuwenden, indem Sie beide übergeben lengths
und breadths
Listen.
areas = list(map(area,lengths,breadths))
print(areas)
Da der Funktionsbereich zwei Argumente akzeptiert, werden die Längen- und Breitenwerte aus den Listen verwendet lengths
breadths
, Bzw.
Output
[36, 32, 60, 198]
#2dem „Vermischten Geschmack“. Seine Python-Mathematikmodul hat die log-Funktion, die uns hilft, den Logarithmus einer Zahl zu einer beliebigen Basis zu berechnen.
Hinweis: log(x, basis) gibt den Wert von zurück logx zu der durch den Wert angegebenen Basis Base, Log Base x. Wenn die Basis nicht angegeben ist, ist der Standardbasiswert e (log berechnet den natürlichen Logarithmus).
In diesem Beispiel:
- Die Liste
x
entspricht den Werten, für die Sie den Logarithmus berechnen möchten. - Die
base
list enthält alle Basiswerte, die bei der Logarithmusberechnung verwendet werden sollen.
x = [2,6,12,10]
base = [2,3,2,5]
Wir können die Python-Funktion map() mit verwenden math.log
, die Listen, x
und base
um die neue Liste zu erhalten log_x
, wie folgt.
log_x = list(map(math.log,x,base))
print(log_x)
Hier ist die Ausgabe.
Output
[1.0, 1.6309297535714573, 3.5849625007211565, 1.4306765580733933]
Fazit
Hier ist eine Zusammenfassung dessen, was Sie in diesem Tutorial gelernt haben:
- Die Python-Funktion map() akzeptiert mindestens zwei Argumente: eine Funktion und ein Iterable mit der Syntax map(function, iterable(s)).
- Die Funktion kann jede gültige aufrufbare Python sein.
- Wenn das Funktion nimmt ein k Argumente, verwenden Sie die
map()
Funktion mit der Funktion und jeder der k Argumente in einem Iterable.
Als nächstes lernen Sie, damit zu arbeiten Sätze in Python.