Converta todas as seqüências de caracteres em uma lista para int


Respostas:


1171

Use a mapfunção (no Python 2.x):

results = map(int, results)

No Python 3, você precisará converter o resultado de mappara uma lista:

results = list(map(int, results))

23
Quero ressaltar que o pylint desencoraja o uso de map, portanto, prepare-se para usar a compreensão da lista de qualquer maneira, se você usar esse padrão. :)
ThorSummoner

6
O inverso é (para converter uma lista de int para lista de seqüências de caracteres): map (str, results)
Ali ISSA

12
Você pode simplificar esta resposta: use sempre list(map(int, results)), ela funciona em qualquer versão do Python.
Mvp


3

Um pouco mais expandido do que a compreensão da lista, mas também é ú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)

por exemplo

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

Além disso:

def str_list_to_int_list(str_list):
    int_list = [int(n) for n in str_list]
    return int_list
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.