我必须使用%.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语法?
答案 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])
希望这会有所帮助