2012-10-05 31 views
6

Estoy usando Python versión 3.2.3. Estoy tratando de imprimir una lista de números en una fila, el comando de impresión parece imprimir siempre los números uno en fila.Imprimir una lista de números en Python v.3

Ejemplo

numbers = [1, 2, 3, 4, 5]; 
for num in numbers: 
    print("\t ", num) 

salida es:

1 

2 
... 

la salida requerida es 1 2 3 4 5

apreciaría su ayuda. P.s. Busqué en la web aquí y la mayoría de las preguntas estaban relacionadas con Python 2.7.

+0

No es un [Python-3.x] (http: // stackoverflow.com/questions/tagged/python-3.x), que puede ayudar en sus búsquedas. – Evert

Respuesta

10

Utilice el argumento end para suprimir (o sustituir) la automática de salida EOL:

print("\t ", num, end='') 

O, probablemente debería sólo tiene que utilizar:

print('\t'.join(map(str, [1, 2, 3, 4, 5]))) 
+0

Gracias Jon por tu respuesta rápida: resolvió el problema. – Sinan

+0

Hay una forma aún más fácil ahora que la impresión es una función: 'print (* numbers, sep = '\ t')' –

+2

@ThomasK Su comentario es realmente una muy buena respuesta, ¿por qué no hacer una respuesta? –

4

Puede utilizar .join() a unirse a ellos usando el carácter de tabulación:

>>> numbers = [1, 2, 3, 4, 5] 
>>> print('\t'.join(map(str, numbers))) 
1 2 3 4 5 

map(str, numbers) es idéntica a [str(n) for n in numbers].

+0

Gracias por su comentario. Es apreciado. – Sinan

+0

'map (str, numbers)' es similar a '(str (n) para n en números)', no lo que has escrito. –

2

usted podría utilizar sys.stdout.write() en lugar de print(), que enviará su salida al flujo de salida inmediatamente, y sin la nueva línea.

Esto tiene la desventaja de ser feo y la ventaja de no almacenar toda la cadena en la memoria a la vez. (. El enfoque join podría bloquear el equipo si la matriz era muy, muy grande)

+0

Cambie "bloquear su computadora" para "bloquear su proceso de Python". – Deestan

+0

Gracias por el comentario, es apreciado. – Sinan

7

Además de las otras respuestas, hay una clara forma de hacerlo ahora que la impresión es una función:

print(*numbers, sep='\t') 

A diferencia de su código original, esto no pondrá una pestaña antes del primer número. Si quieres que la pestaña adicional, la manera más fácil es sólo para poner un elemento en blanco antes de los números, por lo que crea una pestaña adicional separador:

print('', *numbers, sep='\t')