Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Convert a list of float to string in Python

I have a list of floats in Python and when I convert it into a string, I get the following

[1883.95, 1878.3299999999999, 1869.4300000000001, 1863.4000000000001]

These floats have 2 digits after the decimal point when I created them (I believe so),

Then I used

str(mylist)

How do I get a string with 2 digits after the decimal point?

======================

Let me be more specific, I want the end result to be a string and I want to keep the separators:

"[1883.95, 1878.33, 1869.43, 1863.40]"

I need to do some string operations afterwards. For example +="!\t!".

Inspired by @senshin the following code works for example, but I think there is a better way

msg = "["

for x in mylist:
    msg += '{:.2f}'.format(x)+','

msg = msg[0:len(msg)-1]
msg+="]"
print msg
like image 428
Niebieski Avatar asked May 01 '14 23:05

Niebieski


1 Answers

If you want to keep full precision, the syntactically simplest/clearest way seems to be

mylist = list(map(str, mylist))
like image 78
ezekiel Avatar answered Sep 28 '22 09:09

ezekiel