So verwenden Sie die Funktion „map()“ in Python
Erfahren Sie, wie Sie die Funktion „map()“ von Python verwenden. Beherrschen Sie die Anwendung von Funktionen auf Iterables, ohne Schleifen zu schreiben, und vergleichen Sie Karten- und Listenverständnisse.
Übersicht
Bei der Verarbeitung von Datensammlungen müssen Sie häufig eine bestimmte Transformation auf jedes einzelne Element in einer Iterable anwenden. Konvertieren Sie beispielsweise eine Liste mit Zeichenfolgenzahlen in Ganzzahlen oder normalisieren Sie ein Datenbankarray mit Zeichenfolgen durch Konvertieren in Kleinbuchstaben. Anstatt ausführliche „for“-Schleifen zu schreiben, bietet Python ein integriertes Tool namens „map()“.
Die Funktion „map(function, iterable)“ akzeptiert eine Transformationsfunktion und eine Iterable als Argumente. Es wendet die Funktion auf jedes Element des Iterables an und gibt ein Iteratorobjekt (ein „Map“-Objekt) zurück. Da es als Iterator zurückgegeben wird, werden die Berechnungen verzögert ausgeführt: Elemente werden nur verarbeitet, während Sie über sie iterieren, was bei großen Datensätzen Speicherplatz spart.
Um sofort eine Listendarstellung des Kartenobjekts zu erhalten, müssen Sie das Ergebnis mit dem Konstruktor „list()“ umwandeln: „list(map(func, data))“. Sie können jede Standardfunktion, Standardbibliotheksfunktion (wie „str“ oder „len“) oder benutzerdefinierte anonyme Funktionen, die mit dem Schlüsselwort „lambda“ deklariert wurden, direkt an „map()“ zur Inline-Ausführung übergeben.
Code- und Ausführungsausgabe
Dieses Skript demonstriert das Ändern von Sammlungen mithilfe der Funktion „map()“ mit Zeichenfolgentransformationen, das Zuordnen von Listenelementen zu Zahlen und die Verwendung von Lambda-Rückrufen.
# 1. Map string conversion over a list of numbers
numbers = [1, 2, 3, 4]
string_numbers = list(map(str, numbers))
print("Mapped to strings:", string_numbers)
# 2. Square numbers using a lambda function inside map()
squared = list(map(lambda x: x**2, numbers))
print("Squared numbers:", squared)
# 3. Apply custom logic function to items
def normalize_name(name):
return name.strip().capitalize()
names = [" alice", "BOB ", " charlie "]
clean_names = list(map(normalize_name, names))
print("Clean names list:", clean_names)Mapped to strings: ['1', '2', '3', '4']
Squared numbers: [1, 4, 9, 16]
Clean names list: ['Alice', 'Bob', 'Charlie']Schrittweise Umsetzung
- Identifizieren Sie die Transformationsfunktion, die Sie auf jedes Element in der Sammlung anwenden möchten.
- Rufen Sie „map(function_name, iterable)“ auf, um einen Lazy-Iterator transformierter Elemente zu erstellen.
- Schließen Sie den Aufruf von „map()“ in „list()“ ein, wenn Sie sofort auf alle Elemente als Standardliste zugreifen müssen.
- Kombinieren Sie map() mit Lambda-Funktionen für schnelle, einmalige Inline-Transformationen.
Häufig gestellte Fragen
Ist map() besser als Listenverständnis?
Listenverständnisse werden von der Community im Allgemeinen als besser lesbar und pythonisch angesehen. Allerdings kann map() schneller sein, wenn eine vorhandene integrierte Funktion (wie map(str, list)) angewendet wird, da es optimierte C-Code-Schleifen ausführt.
Kann map() mehrere Iterables annehmen?
Ja! Wenn die Transformationsfunktion mehrere Argumente akzeptiert, können Sie mehrere Iterables an map() übergeben. Beispielsweise fügt „map(lambda x, y: x + y, list1, list2)“ Elemente paarweise hinzu.
Verwandte Themen
Erfahren Sie, wie Sie Lambda-Funktionen in Python verwenden. Beherrschen Sie anonyme Funktionen, Inline-Rückrufe und das Sortieren von Listendaten mit Lambda-Schlüsseln.
So verwenden Sie das Listenverständnis in PythonErfahren Sie, wie Sie Listenverständnisse in Python verwenden. Schreiben Sie prägnante Schleifen, wenden Sie bedingte Filter an und erstellen Sie Matrizen mit klarer visueller Syntax.
So verwenden Sie die Funktion filter() in PythonErfahren Sie, wie Sie die Funktion filter() von Python verwenden, um Elemente aus Sammlungen zu extrahieren. Vergleichen Sie den Filter mit Listenverständnissen und Lambda-Rückrufen.
Empfohlene Python-Ressourcen
Erweitern Sie Ihr Wissen mit zugehörigen interaktiven Tutorials, Spickzetteln und Codevergleichen.
Python-Funktionen
Beherrschen Sie Python-Funktionen. Erfahren Sie, wie Sie mit def wiederverwendbaren Code schreiben, Argumente definieren, Werte zurückgeben und den lokalen und globalen Bereich verstehen.
Spickzettel für Funktionen des Python-Mathemoduls
Kurzanleitung für die Python-Mathe-Standardbibliothek. Erfahren Sie, wie Sie trigonometrische, logarithmische, rundende und arithmetische Funktionen verwenden.
Python vs. JavaScript: Welche Programmiersprache ist die beste?
Ein umfassender Vergleich zwischen Python und JavaScript. Entdecken Sie Syntaxunterschiede, Leistung, Anwendungsfälle (Backend vs. Frontend) und Codierungsbeispiele.