2010-03-11 9 views

Respuesta

17

Python 2.x:

map(int, ["1", "2", "3"]) 

Python 3.x (en 3.x, map devuelve un iterador, no una lista como en 2.x):

list(map(int, ["1", "2", "3"])) 

map documentación : 2.6, 3.1

+1

Tengo la impresión de que 'map' en general no me gusta. Incluso se eliminó casi de Python 3. – pafcu

17
[int(i) for i in str_list] 
+0

El ')' al final es incorrecto, pero de lo contrario +1 –

+0

+1 Me gusta mucho 'map', pero los generadores son mucho más legibles. –

4

también puede utilizar la lista de compr ensiones:

new = [int(i) for i in old] 

o la función map() orden interna:

new = map(int, old) 

o la función itertools.imap(), que proporcionará un aumento de velocidad en algunos casos, pero en este caso solo escupe un iterador, que necesitará convertir a una lista (por lo que probablemente va a tomar la misma cantidad de tiempo):

import itertools as it 
new = list(it.imap(int, old)) 
2

Si las cadenas no son sólo números (es decir. u ''), puede usar:

new = [int(i) for i in ["1", "2", "3"] if isinstance(i, int) or isinstance(i, (str, unicode)) and i.isnumeric()] 
0

If It is array and has numpy installed. También podemos usar el código a continuación.

import numpy as np 

np.array(['1', '2', '3'],dtype=int) 
Cuestiones relacionadas