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: