Lo más elemental es recorrer toda la matriz buscando el número mayor, y sacar el número de cifras con su logaritmo decimal (asumiendo enteros). Si tienes floats, casi siempre van a tener el mismo número de cifras.
2011/2/17 Fernando Guarini <fernandoe...@gmail.com>: > Vale, a ver, al final he logrado lo que me proponía usando este código: > M = [ [1, 4, 0], [1, 1561561, 0], [0, 0, 18198191], [1,1,1] ] > for x in M: > print "(", > for y in range(len(x)): > if y == 0: > print x[y], > else: > print "%13d" %(x[y]), > print ")" > Gracias a todos los que me habeis respondido. Pero aún me queda una duda. Si > os fijais en mi código y lo probais, vereis que he puesto un 13 de espacio, > para que se vea todo perfectamente encuadrado. Sin embargo, necesito que ese > 13 sea "flexible" para que en función del número de caracteres que tenga el > mayor de los números de la matriz, ese 13 se convierta en un 20 o en un 200 > si es necesario. > ¿A alguno se le ocurre cómo podría hacerse? > Salu2 > El 17 de febrero de 2011 00:43, Francisco Palm <francisco.p...@gmail.com> > escribió: >> >> M = [ [1, 0, 0], [0, 1561561, 0], [0, 0, 1] ] >> >> for i in M: >> print('[',end=' ') >> for j in i[:-1]: >> print('{:^10}'.format(j),end=',') >> print('{:^10} ]'.format(i[-1]),end='\n') >> print('') >> for i in M: >> print('[',end=' ') >> for j in i[:-1]: >> print('{:>10}'.format(j),end=',') >> print('{:^10}]'.format(i[-1]),end=' \n') >> print('') >> for i in M: >> print('[',end=' ') >> for j in i[:-1]: >> print('{:<10}'.format(j),end=',') >> print('{:^10} ]'.format(i[-1]),end='\n') >> >> En Python 3 produce: >> >> >>> >> [ 1 , 0 , 0 ] >> [ 0 , 1561561 , 0 ] >> [ 0 , 0 , 1 ] >> >> [ 1, 0, 0 ] >> [ 0, 1561561, 0 ] >> [ 0, 0, 1 ] >> >> [ 1 ,0 , 0 ] >> [ 0 ,1561561 , 0 ] >> [ 0 ,0 , 1 ] >> >> Con una fuente de ancho fijo queda perfectamente alineado. >> >> 2011/2/16 Fernando Guarini <fernandoe...@gmail.com>: >> > Hola a todos. >> > Vereis, estoy creando un programita en Python que pretendo que trabaje >> > con >> > matrices. Para ello, he decidido anidar listas, ya que he buscado mucho >> > en >> > Google y parece ser la mejor opción. >> > Y el invento no funciona mal en absoluto, pero me gustaría que >> > gráficamente >> > se viese "bonito". El código que he implementado es el siguiente: >> > M = [ [1, 0, 0], [0, 1561561, 0], [0, 0, 1] ] >> > for i in range(0, len(M)): >> > print M[i] >> > Y la salida es: >> > [1, 0, 0] >> > [0, 1561561, 0] >> > [0, 0, 1] >> > Lo único que deseo es que la salida se vea del siguiente modo: >> > [1, 0, 0] >> > [0, 1561561, 0] >> > [0, 0, 1] >> > Es decir, que se vea como una Matriz de verdad. No pido nada más. >> > Ojalá alguno sepa ayudarme. >> > Salu2 y muchas gracias! >> > _______________________________________________ >> > Python-es mailing list >> > Python-es@python.org >> > http://mail.python.org/mailman/listinfo/python-es >> > FAQ: http://python-es-faq.wikidot.com/ >> > >> > >> >> >> >> -- >> -------------------------------------- >> fp...@ula.ve >> francisco.p...@gmail.com >> >> cel: +58 +426 5721730 >> tel: +58 +274 6352001 >> >> ---- >> Debemos ser libres, no para hacer lo que nos plazca, sino libres para >> comprender muy profundamente nuestros propios instintos e impulsos. K >> _______________________________________________ >> Python-es mailing list >> Python-es@python.org >> http://mail.python.org/mailman/listinfo/python-es >> FAQ: http://python-es-faq.wikidot.com/ > > > _______________________________________________ > Python-es mailing list > Python-es@python.org > http://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ > > _______________________________________________ Python-es mailing list Python-es@python.org http://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/