Tutorials  /  Python

Python map() Funktion

Ccentron Redaktion · Februar 2024 ·4 Min. Lesezeit ·Python, Tutorial

Die Python map() Funktion wird verwendet, um eine Funktion auf alle Elemente eines angegebenen Iterierbaren anzuwenden und ein map-Objekt zurückzugeben. Ein Python map-Objekt ist ein Iterator, daher können wir über seine Elemente iterieren. Wir können das map-Objekt auch in Sequenzobjekte wie Liste, Tupel usw. mit deren Factory-Funktionen umwandeln.

Python map() Funktion

Die Syntax der Python map() Funktion ist:

Code
map(function, iterable, ...)

Wir können mehrere iterierbare Argumente an die map() Funktion übergeben, in diesem Fall muss die angegebene Funktion so viele Argumente haben. Die Funktion wird auf diese iterierbaren Elemente parallel angewendet. Mit mehreren iterierbaren Argumenten stoppt der map-Iterator, wenn das kürzeste Iterierbare erschöpft ist.

VM

Passende Infrastruktur bei centron

Skripte und Dienste brauchen irgendwann eine Umgebung, die durchläuft: ccloud³ VMs ab 3,12 € im Monat, stundengenau abgerechnet. Cloud Server mieten →

Python map() Beispiel

Lassen Sie uns eine Funktion schreiben, die mit der map() Funktion verwendet wird.

Python
def to_upper_case(s):
    return str(s).upper()

Es ist eine einfache Funktion, die die Großbuchstabendarstellung des Eingabeobjekts zurückgibt. Ich definiere auch eine Hilfsfunktion, um die Elemente des Iterators zu drucken. Die Funktion druckt die Elemente des Iterators mit Leerzeichen und wird in allen Code-Snippets wiederverwendet.

Python
def print_iterator(it):
    for x in it:
        print(x, end=' ')
    print('')  # for new line

Python map() mit String

Python
map_iterator = map(to_upper_case, 'abc')
print(type(map_iterator))
print_iterator(map_iterator)

Output:

Code
<class 'map'>
A B C 

Python map() mit Tupel

Code
map_iterator = map(to_upper_case, (1, 'a', 'abc'))
print_iterator(map_iterator)

Output:

Code
1 A ABC 

Python map() mit Liste

Code
map_iterator = map(to_upper_case, ['x', 'a', 'abc'])
print_iterator(map_iterator)

Output:

Code
X A ABC 

Konvertierung von map in Liste, Tupel, Set

Da das map-Objekt ein Iterator ist, können wir es als Argument an die Factory-Methoden zur Erstellung einer Liste, eines Tupels, eines Sets usw. übergeben.

Python
map_iterator = map(to_upper_case, ['a', 'b', 'c'])
my_list = list(map_iterator)
print(my_list)

map_iterator = map(to_upper_case, ['a', 'b', 'c'])
my_set = set(map_iterator)
print(my_set)

map_iterator = map(to_upper_case, ['a', 'b', 'c'])
my_tuple = tuple(map_iterator)
print(my_tuple)

Output:

Code
['A', 'B', 'C']
{'C', 'B', 'A'}
('A', 'B', 'C')

Python map() mit Lambda

Wir können Lambda-Funktionen mit map() verwenden, wenn wir sie nicht wiederverwenden möchten. Dies ist nützlich, wenn unsere Funktion klein ist und wir keine neue Funktion definieren möchten.

Code
list_numbers = [1, 2, 3, 4]

map_iterator = map(lambda x: x * 2, list_numbers)
print_iterator(map_iterator)

Output:

Code
2 4 6 8 

Python map() mit mehreren Argumenten

Lassen Sie uns ein Beispiel für die Verwendung der map() Funktion mit mehreren iterierbaren Argumenten betrachten.

Code
list_numbers = [1, 2, 3, 4]
tuple_numbers = (5, 6, 7, 8)
map_iterator = map(lambda x, y: x * y, list_numbers, tuple_numbers)
print_iterator(map_iterator)

Output: 5 12 21 32 Beachten Sie, dass unsere Funktion zwei Argumente hat. Der Output-Map-Iterator ist das Ergebnis der parallelen Anwendung dieser Funktion auf die beiden iterierbaren Elemente. Schauen wir uns an, was passiert, wenn die Iterablen unterschiedlich groß sind.

Code
list_numbers = [1, 2, 3, 4]
tuple_numbers = (5, 6, 7, 8, 9, 10)
map_iterator = map(lambda x, y: x * y, list_numbers, tuple_numbers)
print_iterator(map_iterator)

map_iterator = map(lambda x, y: x * y, tuple_numbers, list_numbers)
print_iterator(map_iterator)

Output:

Code
5 12 21 32 
5 12 21 32 

Wenn also die Argumente unterschiedlich groß sind, wird die map-Funktion auf die Elemente angewendet, bis eines von ihnen erschöpft ist.

Python map() mit Funktion None

Lassen Sie uns sehen, was passiert, wenn wir die Funktion als None übergeben.

Python
map_iterator = map(None, 'abc')
print(map_iterator)
for x in map_iterator:
    print(x)

Output:

Code
Traceback (most recent call last):
  File "/Users/pankaj/Documents/github/journaldev/Python-3/basic_examples/python_map_example.py", line 3, in 
    for x in map_iterator:
TypeError: 'NoneType' object is not callable
Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie Python
Teilen
Noch offene Fragen?

Our team will help you with your specific setup - in German or English, by people who run the platform themselves.

War dieses Tutorial hilfreich?

Your answer is stored anonymously and helps us improve our tutorials.

Kommentare

No comments yet - be the first to ask a question about this tutorial.

Sign in to comment

Comments are open to centron customers. Sign in to your account to ask a question about this tutorial.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren