Format all elements of a list

A very short solution using "".format() and a generator expression:

>>> theList=[1.343465432, 7.423334343, 6.967997797, 4.5522577]

>>> print(['{:.2f}'.format(item) for item in theList])

['1.34', '7.42', '6.97', '4.55']

If you just want to print the numbers you can use a simple loop:

for member in theList:
    print "%.2f" % member

If you want to store the result for later you can use a list comprehension:

formattedList = ["%.2f" % member for member in theList]

You can then print this list to get the output as in your question:

print formattedList

Note also that % is being deprecated. If you are using Python 2.6 or newer prefer to use format.


For Python 3.5.1, you can use:

>>> theList = [1.343465432, 7.423334343, 6.967997797, 4.5522577]
>>> strFormat = len(theList) * '{:10f} '
>>> formattedList = strFormat.format(*theList)
>>> print(formattedList)

The result is:

'  1.343465   7.423334   6.967998   4.552258 '

You can use list comprehension, join and some string manipulation, as follows:

>>> theList=[1.343465432, 7.423334343, 6.967997797, 4.5522577]
>>> def format(l):
...     return "["+", ".join(["%.2f" % x for x in l])+"]"
... 
>>> format(theList)
'[1.34, 7.42, 6.97, 4.55]'