2017-09-23 1 views
-3

Ich versuche, alle Zahlen in einer Liste in ihre Quadrate mithilfe einer Lambda-Funktion und Kartenfunktion zu konvertieren, aber es scheint nicht die richtige Ausgabe zu gimme! Hier ist der Code:Python Karte Funktion Fehler

num_file = [12,24,36] 
map(lambda num:num**2,num_file) 

Aber es gibt mir diese Ausgabe statt der Quadrate:

<map at 0x4d82d10> 

Bitte um Hilfe!

+0

gelten nur 'list' darauf:' Liste (map (lambda num: num ** 2, num_file)) ' – PRMoureu

Antwort

2

map gibt ein Kartenobjekt, eine Liste aus ihm heraus zu bekommen, verwenden Sie die list Funktion:

>>> num_file = [12,24,36] 
>>> list(map(lambda num:num**2,num_file)) 
[144, 576, 1296] 

Sie können auch eine Liste Verständnis verwenden:

>>> num_file = [12,24,36] 
>>> [num**2 for num in num_file] 
[144, 576, 1296] 
+0

Das hat geklappt! Danke vielmals ! –

+0

Gut zu helfen :). –

2

map gibt einen Generator. Wenn Sie eine tatsächliche Liste erhalten möchten, tun Sie list(map(..)).

Beachten Sie, dass Sie es oft nicht explizit machen möchten.

Zum Beispiel nächste Code wird gut funktionieren:

for square in map(lambda n: n**2, [12, 24, 36]): 
    print(square)