Imprimir una lista int en una sola línea python3

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