Convierta todas las cadenas en una lista a int

Respuestas:

1171

Use la mapfunción (en Python 2.x):

results = map(int, results)

En Python 3, deberá convertir el resultado de mapa una lista:

results = list(map(int, results))
cheeken
fuente
23
Quiero señalar que pylint desalienta el uso de map, así que prepárate para usar las comprensiones de listas de todos modos si alguna vez usas ese estándar. :)
ThorSummoner
66
El inverso es (para convertir una lista de int en una lista de cadenas): map (str, results)
Ali ISSA
12
Puede simplificar esta respuesta: solo use siempre list(map(int, results)), funciona para cualquier versión de Python.
mvp
378

Use una lista de comprensión :

results = [int(i) for i in results]

p.ej

>>> results = ["1", "2", "3"]
>>> results = [int(i) for i in results]
>>> results
[1, 2, 3]
Chris Vig
fuente
30
La comprensión de la lista también es genial. Para el OP: vea aquí para ver un buen contraste del mapa y la comprensión de la lista: stackoverflow.com/questions/1247486/…
cheeken
3

Un poco más extendido que la comprensión de la lista, pero igualmente útil:

def str_list_to_int_list(str_list):
    n = 0
    while n < len(str_list):
        str_list[n] = int(str_list[n])
        n += 1
    return(str_list)

p.ej

>>> results = ["1", "2", "3"]
>>> str_list_to_int_list(results)
[1, 2, 3]

También:

def str_list_to_int_list(str_list):
    int_list = [int(n) for n in str_list]
    return int_list
2RMalinowski
fuente