Python – Join float list into space-separated string in Python

listpython

I have a list of floats in python:

a = [1.2, 2.9, 7.4]

I want to join them to produce a space-separated string – ie.:

1.2 2.9 7.4

However, when I try:

print " ".join(a)

I get an error because they're floats, and when I try:

print " ".join(str(a))

I get

[ 1 . 2 ,   1 . 8 ,   5 . 2 9 9 9 9 9 9 9 9 9 9 9 9 9 9 8 ]

How can I join all of the elements, while converting the elements (individually) to strings, without having to loop through them all?

Best Solution

You need to convert each entry of the list to a string, not the whole list at once:

print " ".join(map(str, a))

If you want more control over the conversion to string (e.g. control how many digits to print), you can use

print "".join(format(x, "10.3f") for x in a)

See the documentation of the syntax of format specifiers.