[Python-es] Matrices
Daπid
davidmenhur en gmail.com
Jue Feb 17 02:03:56 CET 2011
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 <fernandoenzo en 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.palm en 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 <fernandoenzo en 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 en python.org
>> > http://mail.python.org/mailman/listinfo/python-es
>> > FAQ: http://python-es-faq.wikidot.com/
>> >
>> >
>>
>>
>>
>> --
>> --------------------------------------
>> fpalm en ula.ve
>> francisco.palm en 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 en python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>
Más información sobre la lista de distribución Python-es