Easy pretty printing of floats?
floating-point, formatting, printing, python
Solution
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:
import numpy as np
np.set_printoptions(precision=2)
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`:
np.set_printoptions(formatter={"float_kind": lambda x: "%g" % x})
For just printing once and not changing global behavior, use `np.array2string` with the same arguments as above.
Problem
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] ```