tabulate mac instalar python list printing format

instalar - install tabulate python mac



Controle un formato de impresiĆ³n cuando imprima una lista en Python (2)

Tengo una lista con un número de punto flotante llamado a . Cuando imprimo la lista con print a . Obtengo el resultado de la siguiente manera.

[8.364, 0.37, 0.09300000000000003, 7.084999999999999, 0.469, 0.303, 9.469999999999999, 0.28600000000000003, 0.2290000000 000001, 9.414, 0.9860000000000001, 0.534, 2.1530000000000005]

¿Puedo decirle a la impresora de la lista que imprima el formato de "5.3f" para obtener un mejor resultado?

[8.364, 0.37, 0.093, 7.084, 0.469, 0.303, 9.469, 0.286, 0.229, 9.414, 0.986, 0.534, 2.153]


Si necesita que esto funcione en estructuras anidadas, debe buscar en el módulo pprint . Lo siguiente debe hacer lo que quiera, en este contexto:

from pprint import PrettyPrinter class MyPrettyPrinter(PrettyPrinter): def format(self, object, context, maxlevels, level): if isinstance(object, float): return (''%.2f'' % object), True, False else: return PrettyPrinter.format(self, object, context, maxlevels, level) print MyPrettyPrinter().pprint({1: [8, 1./3, [1./7]]}) # displays {1: [8, 0.33, [0.14]]}

Para obtener más detalles sobre pprint , consulte: http://docs.python.org/library/pprint.html

Si solo es para una lista plana, la solución de Aix es buena. O si no le gustan las cotizaciones adicionales, puede hacer:

print ''[%s]'' % '', ''.join(''%.3f'' % val for val in list)


In [4]: print [''%5.3f'' % val for val in l] [''8.364'', ''0.370'', ''0.093'', ''7.085'', ''0.469'', ''0.303'', ''9.470'', ''0.286'', ''0.229'', ''1.000'', ''9.414'', ''0.986'', ''0.534'', ''2.153'']

donde l es tu lista.

editar: si las citas son un problema, puede usar

In [5]: print ''['' + '', ''.join(''%5.3f'' % v for v in l) + '']'' [8.364, 0.370, 0.093, 7.085, 0.469, 0.303, 9.470, 0.286, 0.229, 1.000, 9.414, 0.986, 0.534, 2.153]