variable valor una tipos numeros letras imprimir guardar float entrada defino datos cómo convertir python string list int

valor - variables en python 2



Cambie una cadena de enteros separados por espacios a una lista de int (6)

Como hago algo como

x = ''1 2 3 45 87 65 6 8'' >>> foo(x) [1,2,3,45,87,65,6,8]

Estoy completamente atascado, si lo hago por índice, entonces los números con más de 1 dígito se desglosarán. Ayuda por favor.


No hay que preocuparse, porque Python proporciona la función split () para cambiar la cadena en una lista.

x=''1 2 3 4 67 8 9'' x.split()

[''1'', ''2'', ''3'', ''4'', ''67'', ''8'']

o si desea una salida en forma de entero, puede usar la función de mapa

map(int ,x.split('' ''))

[1, 2, 3, 4, 67, 8]


Puede usar una lista de comprensión en combinación con el método .split() :

x = [int(i) for i in x.split()]

Alternativamente, puede utilizar el map también:

x = list(map(int, x.split()))

Esto creará una list de int si desea números enteros.

o simplemente use .split() para una lista de cadenas:

x = x.split()

Si quieres crear una lista de str


Sólo para hacer una explicación clara.

Puede usar el método de cadena str.split() que divide la cadena en una lista. Puedes aprender más sobre este método here .

Ejemplo:

def foo(x): x = x.split() #x is now [''1'',''2'',''3'',''45'', ..] the spaces are removed. for i, v in enumerate(x): #Loop through the list x[i] = int(v) #convert each element of v to an integer

¡Deberias hacer eso!

>>> x [1, 2, 3, 45, 87, 65, 6, 8]


Suponiendo que solo tenga dígitos en su entrada, puede tener algo como lo siguiente:

>>> x = ''1 2 3 45 87 65 6 8'' >>> num_x = map(int, filter(None, x.split('' ''))) >>> num_x [1 2 3 45 87 65 6 8]

Esto resolverá el caso cuando los dígitos estén separados por más de un carácter de espacio o cuando haya caracteres de espacio en la parte frontal o posterior de la entrada. Algo como lo siguiente:

>>> x = '' 1 2 3 4 '' >>> num_x = map(int, filter(None, x.split('' ''))) >>> num_x [1, 2, 3, 4]

Puede reemplazar la entrada a x.split('' '') para que coincida con otros tipos de delimitadores , por ejemplo , o ; etc.


Una simple línea puede ser ...

print (map(int, x.split()))

Como alguien sabiamente me corrigió, en python> = 3, se convertirá,

print(list(map(int,x.split())))

También puede ser usuario en versiones anteriores.


s='' 1 2 3 4 67 8 9 ''
si hay un espacio al principio o al final de la cadena o espacio múltiple entre los elementos como arriba, la función:
out = [item for item in s.split('' '')]
devolverá artículos vacíos:
['''', ''1'', ''2'', '''', ''3'', ''4'', ''67'', ''8'', ''9'', '''']
Puedes filtrarlo:
out = [item for item in filter(None, s.split('' ''))]
La salida se convierte en:
[''1'', ''2'', ''3'', ''4'', ''67'', ''8'', ''9'']
El filtro con Ninguno como primer argumento elimina los elementos vacíos.