Saltar al contenido

imprimir elementos de la lista línea por línea: ¿es posible usar el formato?

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *