2012-04-13 20 views
9

En la siguiente estoy tratando de convertir la primera lista a una lista de números enteros utilizando la función de mapa de cómo puedo lograr estocadena Convertir a entero en el mapa()

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] 

Respuesta

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

Esto hace lo mismo como:

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

así que lo que está haciendo es

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

Espero que aclare la confusión.

+0

frescos gracias ..... ..... – Rajeev

+0

gran respuesta – lopezdp

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

No necesita mapa dentro de su lista de comprensión. Map crea otra lista para que termines con una lista de listas.

Advertencia: Esto funcionará si se conceden las cuerdas a ser números de lo contrario será elevar una excepción.

+0

agradable gracias ..... – Rajeev

-4

Puede hacerlo de esta manera

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

¿Cómo es esto diferente de [respuesta] de jamylak (https://stackoverflow.com/a/10145364/369450)? – cpburnz