格式化浮点列表

时间:2018-03-30 19:37:20

标签: python list format

我必须使用%.02f样式格式化我的花车。

我试过了:

e =[0.2941, 0.1176, 0.0588, 0.2352, 0.1176, 0.1764]
print([float(".02f" % x)  for x in e])

但它失败了,所以我试过了:

print( list(map( '%.02f'.format  , e )) )

它也失败了,我在网上找到了这个:

print( list(map( '%.02f'.__mod__ , e )) )

它给了我一个字符串列表,因此我成功地用两个命令格式化:

ee = map( '%.02f'.__mod__ , e )
ee = map( float , ee )

好吧它终于有效但我会想念一些更容易的事,不是吗?是否可以使用list comprhensions语法?

2 个答案:

答案 0 :(得分:2)

您在原始代码中缺少%,这就是它无效的原因。使用float("%.02f" % x)代替float(".02f" % x)

>>> e =[0.2941, 0.1176, 0.0588, 0.2352, 0.1176, 0.1764]
>>> print([float("%.02f" % x)  for x in e])
#                 ^the % is missing
[0.29, 0.12, 0.06, 0.24, 0.12, 0.18]

或者,使用round

>>> print([ round(x,2)  for x in e])
[0.29, 0.12, 0.06, 0.24, 0.12, 0.18]

答案 1 :(得分:0)

你应该使用round(x,2)来舍入到所需的水平

e =[0.2941, 0.1176, 0.0588, 0.2352, 0.1176, 0.1764]
print([float("{0}".format(round(x,2)))  for x in e])

希望这会有所帮助