2012-04-27 15 views
12

¿Cómo convierto una entrada de enteros separados por espacios en una lista de enteros?convirtiendo la lista de cadenas en listas de números enteros

Ejemplo de entrada:

list1 = list(input("Enter the unfriendly numbers: ")) 

Ejemplo de conversión:

['1', '2', '3', '4', '5'] to [1, 2, 3, 4, 5] 
+0

duplicado posible de [Convertir todas las cadenas en una lista a int] (http://stackoverflow.com/questions/7368789/convert-all-strings-in-a-list-to-int) –

Respuesta

31

map() es su amigo, se aplica la función dada como primer argumento a todos los elementos de la lista.

map(int, yourlist) 

, porque aporta todos los iterable, incluso se puede hacer:

map(int, input("Enter the unfriendly numbers: ")) 

que (en python3.x) devuelve un objeto de mapa, que se puede convertir en una lista. Supongo que está en python3, ya que usó input, no raw_input.

+1

+ 1 pero ¿quisiste decir 'map (int, yourlist)'? –

+0

por supuesto, ya editado. – ch3ka

+0

¿quiere decir 'map (int, input(). Split())', o py3k convierte automáticamente una entrada separada por espacios en una lista? – quodlibetor

1

que puede probar:

x = [int(n) for n in x] 
+2

Esto no funciona. 'int' no es un método en cadenas. –

+0

Lo siento, lo edité ... Esto es realmente lo que quise decir :) – Silviu

+0

No está mal, pero generalmente no reutilizaría 'x' de esa manera. –

14

Una forma es utilizar las listas por comprensión:

intlist = [int(x) for x in stringlist] 
+0

+1, '[int (x) para x en la entrada(). Split()]' para cumplir con las especificaciones de OP. – georg

-2

apenas curioso sobre la forma en que tiene '1', '2', '3', " 4 'en lugar de 1, 2, 3, 4. De todos modos.

>>> list1 = list(input("Enter the unfriendly numbers: ")) 
Enter the unfriendly numbers: 1, 2, 3, 4 
>>> list1 = list(input("Enter the unfriendly numbers: ")) 
Enter the unfriendly numbers: [1, 2, 3, 4] 
>>> list1 
[1, 2, 3, 4] 
>>> list1 = list(input("Enter the unfriendly numbers: ")) 
Enter the unfriendly numbers: '1234' 
>>> list1 = list(input("Enter the unfriendly numbers: ")) 
Enter the unfriendly numbers: '1', '2', '3', '4' 
>>> list1 
['1', '2', '3', '4'] 

bien, algo de código

>>> list1 = input("Enter the unfriendly numbers: ") 
Enter the unfriendly numbers: map(int, ['1', '2', '3', '4']) 
>>> list1 
[1, 2, 3, 4] 
3

esto funciona:

nums = [int(x) for x in intstringlist] 
0
l=['1','2','3','4','5'] 

for i in range(0,len(l)): 
    l[i]=int(l[i]) 
+0

Su sangría está rota. –

1

decir que hay una lista de cadenas con nombre list_of_strings y la salida es la lista de números enteros con nombre list_of_int. map función es una función incorporada de python que se puede utilizar para esta operación.

'''Python 2.7''' 
list_of_strings = ['11','12','13'] 
list_of_int = map(int,list_of_strings) 
print list_of_int 
Cuestiones relacionadas