最优雅的方法是在Python 2中使用任意长度列表的.format()格式化字符串?

时间:2016-04-18 18:54:22

标签: python python-2.7

最近我改写了以下列方式分配字符串变量的代码:

mylist = [1.0, 2.0, 3.0]
somestring = '%6.3f' * len(mylist) % tuple(mylist)

In [7]: somestring

Out[7]: ' 1.000 2.000 3.000'

我想弄清楚如何使用.format()方法做同样的事情。 我最终得到了以下内容:

somestring = ''.join('{:6.3f} ' for i in mylist).format(*mylist)
In [16]: somestring

Out[16]: ' 1.000  2.000  3.000 '

有没有办法做到“更好”? (也在一行?)

1 个答案:

答案 0 :(得分:2)

就像你可以在乘法字符串上使用%一样,你可以在乘法字符串上使用.format()。但是,您需要使用括号来保持它:

somestring = ('{:6.3f}' * len(mylist)).format(*mylist)