Python map()-Funktion mit Beispielen

⚡ Intelligente Zusammenfassung

Python Die Funktion `map()` wendet eine gegebene Funktion auf jedes Element eines iterierbaren Objekts wie einer Liste, einem Tupel, einer Menge, einem Wörterbuch oder einem String an. Sie gibt ein verzögert geladenes `map`-Objekt zurück, das Sie mit `list()` konvertieren oder mithilfe einer Schleife durchlaufen können.

  • 🔢 Syntax: Die Funktion map() nimmt eine Funktion und ein oder mehrere iterierbare Objekte entgegen und wendet diese Funktion auf jedes Element an.
  • 🔁 Rückgabewert: map() gibt ein Lazy Map-Objekt zurück, daher muss es in list(), tuple() oder set() eingebettet werden, um die Ergebnisse anzuzeigen.
  • 🧩 Iterierbare Objekte: Listen, Tupel, Mengen, Wörterbücher und Zeichenketten können alle als Eingaben für map() verwendet werden.
  • Lambda: Durch die Kombination von map() mit einer Lambda-Funktion kann vermieden werden, dass für einfache Transformationen eine separate benannte Funktion definiert werden muss.
  • Mehrere iterierbare Objekte: Durch die Übergabe mehrerer Iterables wird die Funktion parallel auf diese angewendet.ping in der kürzesten Form.
  • 🤖 KI-Unterstützung: KI-Assistenten wie GitHub Copilot generieren map()-Aufrufe, und Transformationen im Map-Stil speisen Datenpipelines im maschinellen Lernen.

Python map()-Funktion

Syntax

map(function, iterator1,iterator2 ...iteratorN)

Kenngrößen

Hier sind zwei wichtige Parameter:

  • Funktion: Eine obligatorische Funktion, die an map() übergeben werden muss und auf alle im Iterator verfügbaren Elemente angewendet wird.
  • Iterator: Ein obligatorisches iterierbares Objekt. Dies kann eine Liste, ein Tupel usw. sein. Sie können mehrere Iteratorobjekte an die map()-Funktion übergeben.

Rückgabewert

Die map()-Funktion wendet die angegebene Funktion auf alle Elemente innerhalb des Iterators an und gibt ein iterierbares Map-Objekt zurück, z. B. ein Tupel, eine Liste usw.

Wie funktioniert die Funktion map()?

Die Funktion `map()` benötigt zwei Eingaben: eine Funktion und ein iterierbares Objekt. Die an `map()` übergebene Funktion ist eine normale Funktion, die alle im iterierbaren Objekt vorhandenen Werte durchläuft.

Angenommen, Sie haben eine Liste mit Zahlen und möchten das Quadrat jeder dieser Zahlen ermitteln.

Um das Ergebnis zu erhalten, benötigen wir eine Funktion, die das Quadrat der gegebenen Zahl zurückgibt. Die Funktion lautet wie folgt:

def square(n):
	return n*n

Die Liste der Elemente, für die wir das Quadrat finden möchten, lautet wie folgt:

my_list = [2,3,4,5,6,7,8,9]

Nun verwenden wir die eingebaute Funktion map(), um das Quadrat jedes Elements in my_list zu erhalten.

Der endgültige Code lautet wie folgt:

def square(n):
    return n*n
my_list = [2,3,4,5,6,7,8,9]
updated_list = map(square, my_list)
print(updated_list)
print(list(updated_list))

Ausgang:

<map object at 0x0000002C59601748>
[4, 9, 16, 25, 36, 49, 64, 81]

Die Ausgabe der map()-Funktion ist, wie oben gezeigt, ein Kartenobjekt, das auf dem Bildschirm angezeigt wird als Die

Um die endgültige Ausgabe zu erhalten, müssen Sie die Ausgabe von `map()` mithilfe einer `for`-Schleife oder der `list()`-Methode durchlaufen. Im Code habe ich `list()` verwendet, um die Werte innerhalb der gegebenen Liste anzuzeigen.

Mithilfe der map()-Funktion können wir das Quadrat jeder Zahl berechnen. Die Liste, die map() übergeben wurde, war [2,3,4,5,6,7,8,9], und mit der Funktion square() erhielten wir als Ergebnis [4, 9, 16, 25, 36, 49, 64, 81].

Die Funktion `map()` wendet die Funktion `square()` auf alle Elemente der Liste an. Beispielsweise wird die Variable `my_list` verwendet, um die Liste um das Quadrat jeder Zahl zu aktualisieren. Das Ergebnis wird in der Variable `updated_list` gespeichert.

Verwenden von map() mit Python eingebaute Funktionen

Das Python Die Funktion map() ist eine integrierte Funktion und kann auch mit anderen integrierten Funktionen verwendet werden, die in PythonIn diesem Beispiel werden wir die Python round() ist eine eingebaute Funktion, die die angegebenen Werte rundet.

Ejemplo:

Meine Liste ist `my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907]`. Ich benötige die gerundeten Werte für jedes Element in der Liste. Daher verwenden wir die Funktion `round()` anstelle von `map()`.

my_list = [2.6743,3.63526,4.2325,5.9687967,6.3265,7.6988,8.232,9.6907]
updated_list = map(round, my_list)
print(updated_list)
print(list(updated_list))

Ausgang:

<map object at 0x000000E65F901748>
[3, 4, 4, 6, 6, 8, 8, 10]

Die Funktion round() wird auf alle Elemente in der Liste angewendet und gibt eine Liste zurück, in der alle Werte gerundet sind, wie in der Ausgabe gezeigt.

Verwendung von map() mit einem String als Iterator

Wir können map() auch auf einen String anwenden. PythonEin String verhält sich wie ein Array, daher können wir ihn problemlos innerhalb von map() verwenden.

In diesem Beispiel haben wir eine Funktion `myMapFunc()`, die die Umwandlung einer gegebenen Zeichenkette in Großbuchstaben übernimmt. Die Funktion `myMapFunc()` wird der Funktion `map()` übergeben. Die Funktion `map()` wandelt die Zeichenkette in Großbuchstaben um, indem sie sie an `myMapFunc()` weitergibt.

def myMapFunc(s):
    return s.upper()
my_str = "welcome to guru99 tutorials!"
updated_list = map(myMapFunc, my_str)
print(updated_list)
for i in updated_list:
    print(i, end="")

Ausgang:

<map object at 0x000000DF2E711748>
WELCOME TO GURU99 TUTORIALS!

Verwendung von map() mit einer Liste von Numbers

Um mit einer Liste in map() zu arbeiten, nehmen wir eine Liste von Zahlen und multiplizieren jede Zahl in der Liste mit 10.

Die Liste, die wir verwenden werden, ist [2, 3, 4, 5, 6, 7, 8, 9]. Die Funktion `myMapFunc()` multipliziert die gegebene Zahl mit 10. Die Funktion wird zusammen mit der Liste an `map()` übergeben.

Ejemplo:

def myMapFunc(n):
    return n*10

my_list = [2,3,4,5,6,7,8,9]

updated_list = map(myMapFunc, my_list)
print(updated_list)
print(list(updated_list))

Ausgang:

<map object at 0x000000EE2C061898>
[20, 30, 40, 50, 60, 70, 80, 90]

Das Ergebnis ist, dass jede Zahl in der Liste mit 10 multipliziert wird.

Verwenden von map() mit Tuple

Ein Tupel ist ein Objekt in Python Die Elemente sind durch Kommas getrennt und in runde Klammern eingeschlossen. In diesem Beispiel verwenden wir ein Tupel mit Zeichenkettenwerten. Die verwendete Funktion wandelt die Werte in Großbuchstaben um.

Ejemplo:

def myMapFunc(n):
    return n.upper()

my_tuple = ('php','java','python','c++','c')

updated_list = map(myMapFunc, my_tuple)
print(updated_list)
print(list(updated_list))

Ausgang:

<map object at 0x0000009C3C3A16A0>
['PHP', 'JAVA', 'PYTHON', 'C++', 'C']

Die Ausgabe, die wir erhalten, ist ein Tupel, in dem alle Werte in Großbuchstaben umgewandelt sind.

Verwenden von map() mit Dictionary

A Wörterbuch in Python Ein Dictionary wird mithilfe von geschweiften Klammern ({}) erstellt. Da es sich um einen Iterator handelt, kann er innerhalb der Funktion `map()` verwendet werden. Betrachten wir nun die Verwendung eines Dictionarys als Iterator in `map()`.

Das folgende Beispiel veranschaulicht die Funktionsweise eines Dictionary-Iterators innerhalb von map():

def myMapFunc(n):
    return n*10
my_dict = {2,3,4,5,6,7,8,9}
finalitems = map(myMapFunc, my_dict)
print(finalitems)
print(list(finalitems))

Ausgang:

<map object at 0x0000007EB451DEF0>
[20, 30, 40, 50, 60, 70, 80, 90]

Verwenden von map() mit Set

Ein Set in Python `set()` ist eine ungeordnete Sammlung von Elementen in geschweiften Klammern ({}). Da `set()` ebenfalls ein Iterator ist, kann man es innerhalb der Funktion `map()` verwenden.

Hier ist ein funktionierendes Beispiel für die Verwendung eines Sets als Iterator innerhalb von map():

def myMapFunc(n):
    return n*10
my_set = {2,3,4,5,6,7,8,9}
finalitems = map(myMapFunc, my_set)
print(finalitems)
print(list(finalitems))

Ausgang:

<map object at 0x000000AC8F05DEF0>
[20, 30, 40, 50, 60, 70, 80, 90]

Verwenden von map() mit der Lambda-Funktion

In Pythonwerden Lambda-Ausdrücke verwendet, um anonyme Funktionen zu konstruieren. Sie müssen das Schlüsselwort lambda genauso verwenden, wie Sie def verwenden, um normale Funktionen zu definieren.

In diesem Beispiel verwenden wir also die Lambda-Funktion innerhalb von map(). Die Lambda-Funktion multipliziert jeden Wert in der Liste mit 10.

Ejemplo:

my_list = [2,3,4,5,6,7,8,9]
updated_list = map(lambda x: x * 10, my_list)
print(updated_list)
print(list(updated_list))

Ausgang:

<map object at 0x000000BD18B11898>
[20, 30, 40, 50, 60, 70, 80, 90]

Verwendung mehrerer Iteratoren innerhalb der map()-Funktion

Beispiel 1: Übergabe zweier Listeniteratoren an map()

Sie können mehrere Iteratoren, z. B. eine Liste, ein Tupel usw., gleichzeitig an die map()-Funktion senden.

Wenn Sie beispielsweise zwei Listen addieren möchten, können Sie dies mit der Funktion `map()` tun. Wir verwenden dazu zwei Listen: `my_list1` und `my_list2`.

Im folgenden Beispiel wird das erste Element von my_list1 zum ersten Element von my_list2 addiert. Die Funktion myMapFunc() nimmt Elemente von my_list1 und my_list2 entgegen und gibt die Summe beider zurück.

Hier ist ein praktisches Beispiel für die Addition zweier gegebener Listen mithilfe der map()-Funktion.

def myMapFunc(list1, list2):
    return list1+list2

my_list1 = [2,3,4,5,6,7,8,9]
my_list2 = [4,8,12,16,20,24,28]

updated_list = map(myMapFunc, my_list1,my_list2)
print(updated_list)
print(list(updated_list))

Ausgang:

<map object at 0x0000004D5F751860>
[6, 11, 16, 21, 26, 31, 36]

Beispiel 2: Übergabe eines Tupels und eines Listeniterators an map()

Wir verwenden in der `map()`-Funktion einen Listen- und einen Tupel-Iterator. Die an `map()` übergebene Funktion `myMapFunc()` ruft die Elemente aus der Liste und dem Tupel ab. Die Elemente werden mit einem Unterstrich (_) verbunden. Ein praktisches Beispiel ist unten dargestellt:

def myMapFunc(list1, tuple1):
    return list1+"_"+tuple1

my_list = ['a','b', 'b', 'd', 'e']
my_tuple = ('PHP','Java','Python','C++','C')

updated_list = map(myMapFunc, my_list,my_tuple)
print(updated_list)
print(list(updated_list))

Ausgang:

<map object at 0x00000059F37BB4E0>
['a_PHP', 'b_Java', 'b_Python', 'd_C++', 'e_C']

Häufig gestellte Fragen

Beide wenden eine Operation auf jedes Element an. Eine List Comprehension ist oft lesbarer und gibt direkt eine Liste zurück, während map() ein verzögertes Map-Objekt zurückgibt und schneller sein kann, wenn eine vorhandene benannte Funktion wiederverwendet wird.

Nein. `map()` verändert niemals das ursprüngliche iterierbare Objekt. Es liest jedes Element, wendet Ihre Funktion an und erzeugt ein neues, verzögert geladenes `map`-Objekt, wobei die ursprüngliche Liste, das Tupel oder der String unverändert bleibt.

In Python 3. `map()` ist verzögert: Es gibt ein Map-Objekt zurück, dessen Werte erst bei der Iteration berechnet werden. Dies spart Speicherplatz bei großen Datenmengen. Verwenden Sie `list()` oder durchlaufen Sie das Objekt in einer Schleife, um die Ergebnisse zu erhalten.

`map()` transformiert jedes Element, `filter()` behält nur Elemente, die einen Test bestehen, und `reduce()` (aus `functools`) kombiniert alle Elemente zu einem einzigen Wert. Zusammen decken sie Transformations-, Auswahl- und Aggregationsoperationen ab.

Wenn die Längen der iterierbaren Objekte unterschiedlich sind, stoppt map() beim kürzesten Objekt. Zusätzliche Elemente in den längeren iterierbaren Objekten werden ignoriert, sodass kein Fehler auftritt und das Ergebnis dem kürzesten iterierbaren Objekt entspricht.

Nein. Ein Map-Objekt ist ein Iterator, der nach einem Durchlauf erschöpft ist. Sobald Sie ihn durchlaufen oder die Methode `list()` darauf anwenden, ist er leer. Konvertieren Sie ihn daher zuerst in eine Liste, wenn Sie ihn wiederverwenden möchten.

Im maschinellen Lernen wendet die Funktion `map()` Vorverarbeitungsfunktionen auf Datensätze an, wie z. B. die Skalierung von Zahlen, die Tokenisierung von Text oder die Transformation von Merkmalen vor dem Training. Sie bietet eine saubere und funktionale Möglichkeit, dieselbe Operation auf viele Beispiele anzuwenden.

Ja. GitHub Copilot vervollständigt map()-Aufrufe automatisch mit der richtigen Funktion und den richtigen Iterables, und agentenbasierte KI-Tools können Schleifen in map()-Ausdrücke umwandelt und anschließend Ihre Tests ausführen, um zu bestätigen, dass sich das Verhalten nicht ändert.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: