2012-04-13 18 views
9

Nel seguente sto cercando di convertire il primo elenco a un elenco intero utilizzando la funzione di mappa come posso raggiungere questostringa Converti numero intero usando la mappa()

T1 = ['13', '17', '18', '21', '32'] 
print T1 
T3=[map(int, x) for x in T1] 
print T3 
[[1, 3], [1, 7], [1, 8], [2, 1], [3, 2]] 

Expected is: 

T3=[13,17,18,21,32] 

risposta

28
>>> T1 = ['13', '17', '18', '21', '32'] 
>>> T3 = map(int, T1) 
>>> T3 
[13, 17, 18, 21, 32] 

Questo fa la stessa cosa come:

>>> T3 = [int(x) for x in T1] 
>>> T3 
[13, 17, 18, 21, 32] 

in modo da quello che stai facendo è

>>> T3 = [[int(letter) for letter in x] for x in T1] 
>>> T3 
[[1, 3], [1, 7], [1, 8], [2, 1], [3, 2]] 

Spero che chiarisca la confusione.

+0

grazie freddo ..... – Rajeev

+0

grande risposta ..... – lopezdp

2
>>> T1 = ['13', '17', '18', '21', '32'] 
>>> print [int(x) for x in T1] 
[13, 17, 18, 21, 32] 

Non hai bisogno di mappe nella comprensione della tua lista. Mappa crea un altro elenco in modo da ottenere un elenco di elenchi.

Avvertenza: Questo funzionerà se le stringhe sono concesse per essere numeri altrimenti genererà un'eccezione.

+0

Nizza grazie ..... – Rajeev

-4

Si può fare in questo modo

>>>T1 = ['13', '17', '18', '21', '32'] 
>>>list(map(int,T1)) 
+1

Come è diverso da [risposta] di jamylak (https://stackoverflow.com/a/10145364/369450)? – cpburnz

Problemi correlati