Heim >Backend-Entwicklung >Python-Tutorial >Wie funktioniert die „map'-Funktion von Python und wie schneidet sie im Vergleich zum Listenverständnis ab?

Wie funktioniert die „map'-Funktion von Python und wie schneidet sie im Vergleich zum Listenverständnis ab?

Barbara Streisand
Barbara StreisandOriginal
2024-12-23 10:50:16202Durchsuche

How Does Python's `map` Function Work, and How Does It Compare to List Comprehensions?

Entmystifizierung der Kartenfunktion

In Python ist die Kartenfunktion ein integriertes Werkzeug zum Anwenden einer bestimmten Funktion auf jedes Element in einem bestimmten Iterable. Es gibt eine Liste der Ausgaben der Funktion zurück. Diese Funktion spielt eine wichtige Rolle bei der Erstellung eines kartesischen Produkts, das eine Menge aller möglichen geordneten Elementpaare aus zwei oder mehr Mengen ist.

Betrachten Sie das folgende Beispiel:

content = map(tuple, array)

Hier , die Map-Funktion benötigt zwei Parameter:

  • Eine Funktion (in diesem Fall Tupel), die jedes Element des Arrays in a umwandelt Tupel.
  • Ein iterierbares (Array), das eine Reihe von Elementen enthält.

Die Ausgabe dieser Kartenoperation ist eine Liste, in der jedes Element eine Tupelversion des entsprechenden Elements in ist das ursprüngliche Array.

Das Einschließen eines Tupels in die Map-Funktion wirkt sich auf folgende Weise auf die Ausgabe aus:

  • Wenn das Funktion ist ein Tupel, jedes Element wird in ein Tupel umgewandelt.
  • Wenn ein Tupel als iterierbar verwendet wird, wird es als flache Liste wie (a, b, c) behandelt.
  • Wenn a Wird tuple sowohl als Funktion als auch als iterierbares Element verwendet, führt es eine Art „Transponierungs“-Operation durch und erstellt eine Liste von Tupeln, die entsprechende Elemente von allen enthalten iterables.

Ohne die Map-Funktion wäre die Ausgabe einfach die Zeichenfolge „abc“, da das Array eine flache Liste von Zeichen ist. Aufgrund der Map-Funktion wird jedoch jedes Zeichen in ein Tupel mit einem Element konvertiert, was zur Ausgabe ["a", "b", "c"] führt.

Um die Funktionalität der Map vollständig zu erfassen , kann es hilfreich sein, es mit Listenverständnissen zu vergleichen, einer beliebten Alternative in Python:

map(f, iterable) is equivalent to [f(x) for x in iterable]

Listenverständnisse gelten im Allgemeinen als pythonischer und vielseitiger, insbesondere für die Erstellung eines kartesischen Produkt:

[(a, b) for a in iterable_a for b in iterable_b]

Diese Syntax generiert eine Liste aller möglichen Paare zwischen Elementen von iterable_a und iterable_b. Der Übersichtlichkeit halber kann es weiter in eine äquivalente verschachtelte Schleifenstruktur unterteilt werden:

result = []
for a in iterable_a:
    for b in iterable_b:
        result.append((a, b))

Das obige ist der detaillierte Inhalt vonWie funktioniert die „map'-Funktion von Python und wie schneidet sie im Vergleich zum Listenverständnis ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn