I have a list of floats. If I simply print
it, it shows up like this:
[9.0, 0.052999999999999999, 0.032575399999999997, 0.010892799999999999, 0.055702500000000002, 0.079330300000000006]
I could use print "%.2f"
, which would require a for
loop to traverse the list, but then it wouldn't work for more complex data structures.
I'd like something like (I'm completely making this up)
>>> import print_options
>>> print_options.set_float_precision(2)
>>> print [9.0, 0.052999999999999999, 0.032575399999999997, 0.010892799999999999, 0.055702500000000002, 0.079330300000000006]
[9.0, 0.05, 0.03, 0.01, 0.06, 0.08]
List comps are your friend.
Try it:
Note that you can also multiply a string like "%.2f" (example: "%.2f "*10).
The code below works nice to me.
You can do:
I just ran into this problem while trying to use pprint to output a list of tuples of floats. Nested comprehensions might be a bad idea, but here's what I did:
I used generator expressions at first, but pprint just repred the generator...
It's an old question but I'd add something potentially useful:
I know you wrote your example in raw Python lists, but if you decide to use
numpy
arrays instead (which would be perfectly legit in your example, because you seem to be dealing with arrays of numbers), there is (almost exactly) this command you said you made up:Or even better in your case if you still want to see all decimals of really precise numbers, but get rid of trailing zeros for example, use the formatting string
%g
:For just printing once and not changing global behavior, use
np.array2string
with the same arguments as above.