Poseemos la mejor solución que descubrimos en todo internet. Nosotros queremos que te resulte útil y si quieres compartir alguna mejora hazlo con total libertad.
Solución:
Si está utilizando Python 3.x y su intención es simplemente imprimir la lista de elementos, uno en cada línea, entonces puede usar print
función en sí, así
my_list = [1, 2, 3, 4]
print(*my_list, sep="n")
*my_list
simplemente desempaqueta los elementos de la lista y pasa cada uno de ellos como parámetros al print
función (Sí, print
es una función en Python 3.x).
Producción
1
2
3
4
Si está utilizando Python 2.x, puede importar la función de impresión del futuro de esta manera
from __future__ import print_function
Nota: Esta importación debe ser la primera línea del archivo.
Puedes usar el string formateador en cualquier tipo de stringincluyendo multilínea string. Por supuesto, si tuviera un formato string 'nn'
podría pasarle tres elementos, y todos se colocarían en líneas separadas.
Entonces, con una cantidad dinámica de elementos que desea imprimir, todo lo que necesita hacer es asegurarse de que el formato string también contiene el mismo número de elementos de formato. Una forma de resolver esto sería construir el formato string dinamicamente. Por ejemplo esto:
'n'.join('' for _ in range(len(my_list))).format(*my_list)
Así que esencialmente creas un formato string primero, haciendo que un generador produzca un elemento de formato por elemento en
my_list
, y unirlos usando un carácter de nueva línea. Entonces el resultado string se parece a esto: nn…nn
.
Y luego usas eso string como el formato stringy llama format
en él, pasando la lista descomprimida como argumentos. Por lo tanto, está llenando correctamente todos los espacios del formato. string.
Vos tambien pueden hazlo. Sin embargo, esto no es realmente una idea práctica. Parece bastante confuso y no transmite bien su intención. Una mejor manera sería manejar cada elemento de su lista por separado y formatearlo por separado, y solo después unirlos juntos:
'n'.join(''.format(item) for item in my_list)
En cuanto a la impresión de elementos línea por línea, por supuesto, la forma más obvia, eso no requeriría que construyas una larga string con saltos de línea, sería recorrer los elementos e imprimirlos uno por uno:
for item in my_list:
print(item)
# or use string formatting for the item here
print(''.format(item))
Y, por supuesto, como sugirió thefourtheye, si cada iteración de ciclo es muy simple, también puede pasar la lista completa a la función de impresión y establecer sep='n'
para imprimir los elementos en líneas separadas cada uno.
Te refieres a print('n'.join(a_list))
? El formato de cadena probablemente podría hacer algo similar a 'n'.join(a_list)
, pero no parece necesario aquí. (ver actualización)
La cosa es, .format
no imprime nada en absoluto. eso es lo que print
es para. format
toma algunos datos y devuelve un string. print
es una forma de generar eso string a la terminal/salida estándar, pero print
y .format
realmente no tienen ninguna relación real.
Actualizar:
Retiro lo que dije sobre string formateo pudiendo hacer esto. El patrón de formato en sí mismo predefine la aridad del format
método, tan corto de construir dinámicamente el patrón de formato, no puede usar format
para esto.
Comentarios y puntuaciones
Si conservas alguna suspicacia y forma de perfeccionar nuestro escrito eres capaz de añadir un paráfrasis y con deseo lo leeremos.