Heim >Backend-Entwicklung >Python-Tutorial >Wie konvertiere ich das „map'-Objekt von Python 3 in eine Liste?

Wie konvertiere ich das „map'-Objekt von Python 3 in eine Liste?

DDD
DDDOriginal
2024-12-15 02:14:14967Durchsuche

How to Convert Python 3's `map` Object to a List?

Konvertieren von Kartenobjekten in Listen in Python 3.x

In Python 3.x gibt die Funktion „map()“ standardmäßig einen Iterator anstelle einer Liste zurück. Dies kann unpraktisch sein, wenn Sie die zugeordneten Elemente direkt verwenden möchten.

Problemstellung

Eine häufige Aufgabe besteht darin, eine Liste von Ganzzahlen in ihre hexadezimalen Darstellungen umzuwandeln. In Python 2.6 war dies mit der Funktion „map()“ ganz einfach, wie unten gezeigt:

# Python 2.6
hex_list = map(chr, [66, 53, 0, 94])  # Return a list of hex characters

In Python 3.1 gibt der obige Code jedoch ein Kartenobjekt zurück:

# Python 3.1
hex_map = map(chr, [66, 53, 0, 94])  # Return a map object

Lösung

Um die tatsächliche Liste der zugeordneten Elemente in Python 3.x abzurufen, können Sie die Funktion list() verwenden, um das Kartenobjekt in ein zu konvertieren Liste:

hex_list = list(map(chr, [66, 53, 0, 94]))

Bessere Alternative

Ein alternativer Ansatz zum Zuordnen einer Liste von Ganzzahlen zu ihren hexadezimalen Darstellungen ist die Verwendung eines Listenverständnisses wie folgt:

hex_list = [chr(n) for n in [66, 53, 0, 94]]

Dieser Ansatz macht die Verwendung der Funktion „map()“ überflüssig und erstellt direkt eine Liste.

Iterieren über Map Objekte

Beachten Sie, dass Sie in Python 3.x immer noch über ein Kartenobjekt iterieren können, ohne es zuerst in eine Liste zu konvertieren:

for ch in map(chr, [65, 66, 67, 68]):
    print(ch)  # Prints "ABCD"

Das obige ist der detaillierte Inhalt vonWie konvertiere ich das „map'-Objekt von Python 3 in eine Liste?. 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