web-dev-qa-db-fra.com

Convertir toutes les chaînes d'une liste en int

En Python, je veux convertir toutes les chaînes d'une liste en entiers.

Donc si j'ai:

results = ['1', '2', '3']

Comment puis-je le faire:

results = [1, 2, 3]
516
Michael

Utilisez la fonction map (en Python 2.x):

results = map(int, results)

Dans Python 3, vous devrez convertir le résultat de map en une liste:

results = list(map(int, results))
1024
cheeken

Utilisez un compréhension de la liste :

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

par exemple.

>>> results = ["1", "2", "3"]
>>> results = [int(i) for i in results]
>>> results
[1, 2, 3]
343
Chris Vig

Un peu plus étendu que la compréhension de liste mais également utile:

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)

par exemple.

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

Aussi:

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

Il y a différentes façons de le faire:

1) Utilisation de la carte:

def toInt(string):
    return int(string)


equation = ["10", "11", "12"]
equation = map(toInt, equation)
for i in equation:
    print(type(i), i)

2) Le faire sans utiliser map ()

equation = ["10", "11", "12"]
new_list = []
for i in equation:
    new_list.append(int(i))

equation = new_list
print(equation)

Il y a un tas de façons de le faire ..

1
NewbieProgrammer