Geekflare wird von unserem Publikum unterstützt. Wir können Affiliate-Provisionen durch den Kauf von Links auf dieser Website verdienen.
Teilen:

Python map() Funktion, erklärt mit Beispielen

Kartenfunktion
Invicti Web Application Security Scanner – die einzige Lösung, die eine automatische Verifizierung von Schwachstellen mit Proof-Based Scanning™ bietet.

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

Wenden Sie eine Funktion auf Elemente einer Python-Liste an

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 Funktion self_pow() zu jedem Element in der Liste nums.

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 auf self_pow() mit num 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.

python-map-funktionsmotivation

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

Python map() Funktionssyntax

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.

Was gibt die Funktion map() zurück

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

Verwenden Sie die map()-Funktion mit benutzerdefinierten Funktionen

#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

Verwenden Sie die Funktion map() mit integrierten Funktionen

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

Verwenden Sie die map()-Funktion mit Lambda-Funktionen

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 und stop -Werte beginnt das Slice am Anfang der Zeichenfolge und erstreckt sich bis zum Ende der Zeichenfolge.
– Negative Werte von step 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

Verwenden Sie die Funktion map () mit mehreren Iterablen

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.

Danke an unsere Sponsoren
Weitere großartige Lektüre zum Thema Entwicklung
Treiben Sie Ihr Geschäft an
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti verwendet das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu verifizieren und innerhalb weniger Stunden umsetzbare Ergebnisse zu generieren.
    Versuchen Sie es mit Invicti
  • Web-Scraping, Wohn-Proxy, Proxy-Manager, Web-Unlocker, Suchmaschinen-Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie es mit Brightdata
  • Semrush ist eine All-in-One-Lösung für digitales Marketing mit mehr als 50 Tools in den Bereichen SEO, Social Media und Content-Marketing.
    Versuchen Sie es mit Semrush
  • Intruder ist ein Online-Schwachstellenscanner, der Cyber-Sicherheitslücken in Ihrer Infrastruktur findet, um kostspielige Datenschutzverletzungen zu vermeiden.
    MIT DER INTELLIGENTEN SCHADENKALKULATION VON Intruder