Imprimir una lista sin saltos de línea (pero con espacios) en Python

Estoy tratando de imprimir los valores de una lista sin saltos de línea usando sys.stdout.write() . Funciona muy bien, pero el único problema es que quiero separar cada valor de otro. En otras palabras, en lugar de 123 , quiero 1 2 3 . Busqué una solución en el sitio web, pero no he encontrado algo que involucre listas.

Cuando agrego " " a sys.stdout.write(list[i]) , así: sys.stdout.write(list[i], " ") , no se imprime en absoluto. ¿Alguna sugerencia de cómo arreglar eso?

Aquí está mi código:

 import random import sys list = [] length = input("Please enter the number of elements to be sorted: ") randomNums = input("Please enter the number of random integers to be created: ") showList = raw_input("Would you like to see the unsorted and sorted list? y/n: ") for i in range(length): list.append(random.randint(1,randomNums)) if(showList == "y"): for i in range(length): sys.stdout.write(list[i], " ") 

Tratar

 sys.stdout.write(" ".join(list)) 

Lo anterior solo funcionará si la list contiene cadenas. Para que funcione para cualquier lista:

 sys.stdout.write(" ".join(str(x) for x in list)) 

Aquí usamos una expresión generadora para convertir cada elemento de la lista en una cadena.

Si su lista es grande y le gustaría evitar asignarle toda la cadena, el siguiente enfoque también funcionará:

 for item in list[:-1]: sys.stdout.write(str(item)) sys.stdout.write(" ") if len(list) > 0: sys.stdout.write(list[-1]) 

Y como se mencionó en la otra respuesta, no llame a su list variables. En realidad, estás siguiendo el tipo incorporado con el mismo nombre.

Tu puedes hacer:

 sys.stdout.write(" ".join(my_list)) 

Además, es mejor no nombrar su list variables, ya que Python ya tiene un tipo incorporado llamado list . Por lo tanto, es por eso que he cambiado el nombre de su variable a my_list .