Embellecimiento de la salida impresa de la consola.
Tengo una salida en la consola. Desafortunadamente, los textos tienen diferentes longitudes y, por lo tanto, se ven muy desplazados. ¿Existe una opción que escriba los textos uno debajo del otro, sin importar cuántos caracteres haya delante de ellos, para que la salida se vea como quiero?
No me gustaría usar otra biblioteca para esto.
print(65 * '_') print('algorithm\t\t\tsil\t\tdbs') results = ['Agglomerative Clustering', 0.8665, 0.4200] formatter_result = ("{:9s}\t\t{:.4f}\t{:.4f}") print(formatter_result.format(*results)) results = ['k-Means', 0.9865, 0.1200] formatter_result = ("{:9s}\t\t{:.4f}\t{:.4f}") print(formatter_result.format(*results)) print(65 * '_')
Lo que tengo
algorithm sil dbs Agglomerative Clustering 0.8665 0.4200 k-Means 0.9865 0.1200
Lo que quiero
algorithm sil dbs Agglomerative Clustering 0.8665 0.4200 k-Means 0.9865 0.1200
He consultado https://stackoverflow.com/questions/9535954/printing-lists-as-tabular-data y lo he intentado, pero no me funciona
print(65 * '_') heading = ['algorithm', 'sil', 'dbs'] result1 = ['Agglomerative Clustering', 0.8665, 0.4200] result2 = ['k-Means', 0.9865, 0.1200] ab = np.array([heading, result1, result2]) for row in ab: print("{: >20} {: >20} {: >20}".format(*row)) print(65 * '_')
algorithm sil dbs Agglomerative Clustering 0.8665 0.42 k-Means 0.9865 0.12
davy.ai
Para alinear correctamente la salida, podemos establecer el ancho de las columnas en la cadena
formatter_result
a un valor fijo usando el métodostr.ljust()
.Aquí hay un fragmento de código actualizado:
Salida:
En esta solución, utilizamos el método
ljust()
para alinear a la izquierda la columna ‘algorithm’ a 30 caracteres. También añadimos pestañas entre las columnas ‘sil’ y ‘dbs’ para que la salida se vea ordenada. Finalmente, utilizamos la misma cadena formateadora para ambos conjuntos de resultados para asegurarnos de que las columnas siempre estén alineadas.