Soy nuevo en Python y estoy tratando de escanear múltiples números separados por espacios (supongamos ‘1 2 3’ como ejemplo) en una sola línea y agregarlo a una lista de int. Lo hice usando:
#gets the string string = input('Input numbers: ') #converts the string into an array of int, excluding the whitespaces array = [int(s) for s in string.split()]
Aparentemente funciona, ya que cuando escribo ‘1 2 3’ y hago una print(array)
la salida es:
[1, 2, 3]
Pero quiero imprimirlo en una sola línea sin los corchetes, y con un espacio entre los números, como este:
1 2 3
He intentado hacer:
for i in array: print(array[i], end=" ")
Pero me sale un error:
2 3 Traceback (última llamada más reciente):
imprimir (matriz [i], final = “”)
IndexError: índice de lista fuera de rango
¿Cómo puedo imprimir la lista de caracteres (suponiendo que mis dos primeras líneas de código son correctas) en una sola línea, y sin los corchetes y las comas?
Tu quieres decir
for i in array: print(i, end=" ")
La syntax i in array
repite sobre cada miembro de la lista. Entonces, la array[i]
estaba tratando de acceder a la array[1]
, la array[2]
y la array[3]
, pero la última de ellas está fuera de límites (la array
tiene índices 0, 1 y 2).
Puede obtener el mismo efecto con print(" ".join(map(str,array)))
.
estos funcionarán tanto en Python 2.7 como en Python 3.x:
>>> l = [1, 2, 3] >>> print(' '.join(str(x) for x in l)) 1 2 3 >>> print(' '.join(map(str, l))) 1 2 3
por cierto, array
es una palabra reservada en Python.
Sí, eso es posible en Python 3 , solo use *
antes de la variable como:
print(*list)
Esto imprimirá la lista separada por espacios.
Intente usar join en una conversión de str de sus ints:
print ' '.join(str(x) for x in array)
Tiene múltiples opciones, cada una con diferentes casos de uso general.
El primero sería utilizar un bucle for
, como describió, pero de la siguiente manera.
for value in array: print(value, end=' ')
También puede usar str.join
para una línea simple y legible utilizando la comprensión. Este método sería bueno para almacenar este valor en una variable.
print(' '.join(str(value) for value in array))
Mi método favorito, sin embargo, sería pasar array
como *args
, con un sep
de ' '
. Sin embargo, tenga en cuenta que este método solo producirá una salida print
, no un valor que se pueda almacenar en una variable.
print(*array, sep=' ')
# Print In One Line Python print('Enter Value') n = int(input()) print(*range(1, n+1), sep="")
Para Python 2.7 otro truco es:
arr = [1,2,3] for num in arr: print num, # will print 1 2 3