python - 格式化 float 列表

标签 python list format

我必须使用 %.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/

相关文章:

java - 日期格式中月和日的固定长度?

java - 无法解析: Unable to obtain OffsetDateTime from TemporalAccessor:

python - 正则表达式匹配字符串中指定长度的单词

python - 如何使用 python 使我的程序通用?

java - 如何从我的 LinkedList 中获取数组 []

python - 如何在Python中将数字格式化为字符串(1k,2M...)而不进行四舍五入?

python - 字典上的 For 循环给出超出范围的错误

python - 如何在 Ubuntu 中查看 systemd 服务日志

python - 在 python 中重新组合这两个列表的聪明方法

python - 计算列表中的对数,不考虑顺序