Die Listenrückgabe-Kartenfunktion hat den Vorteil, dass die Eingabe gespeichert wird, insbesondere während interaktiver Sitzungen. Sie können eine lmap
Funktion definieren (in Analogie zu Python2 imap
), die eine Liste zurückgibt:
lmap = lambda func, *iterable: list(map(func, *iterable))
Dann erledigt das Anrufen lmap
anstelle von map
den Job:
lmap(str, x)
ist um 5 Zeichen kürzer (in diesem Fall 30%) als list(map(str, x))
und sicherlich kürzer als [str(v) for v in x]
. Sie können ähnliche Funktionen auch für erstellen filter
.
Es gab einen Kommentar zur ursprünglichen Frage:
Ich würde eine Umbenennung in Getting map () vorschlagen, um eine Liste in Python 3 zurückzugeben. * Dies gilt für alle Python3-Versionen. Gibt es eine Möglichkeit, dies zu tun? - Meawoppl 24. Januar um 17:58 Uhr
Das ist möglich, aber es ist eine sehr schlechte Idee. Nur zum Spaß, hier ist, wie Sie es tun können ( aber nicht sollten ):
__global_map = map #keep reference to the original map
lmap = lambda func, *iterable: list(__global_map(func, *iterable)) # using "map" here will cause infinite recursion
map = lmap
x = [1, 2, 3]
map(str, x) #test
map = __global_map #restore the original map and don't do that again
map(str, x) #iterator
map()
wurde fast aus der Sprache entfernt, weil es keinen Grund gibt, sie über ein Listenverständnis oder einefor
Schleife zu verwenden.