我必须使用 %.02f
样式格式化我的 float 。
我已经尝试过:
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 )
好吧,它终于可以工作了,但我会错过一些更简单的东西,不是吗?是否可以使用列表推导语法?
最佳答案
您的原始代码中缺少 %
,这就是它不起作用的原因。使用 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]
关于python - 格式化 float 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49580390/