【问题标题】:Formatting a list of floats格式化浮点数列表
【发布时间】:2019-12-15 19:58:19
【问题描述】:

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

好吧,它终于起作用了,但我会错过一些更简单的东西,不是吗?是否可以使用列表理解语法?

【问题讨论】:

    标签: python list format


    【解决方案1】:

    您在原始代码中缺少%,这就是它不起作用的原因。使用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]
    

    【讨论】:

      【解决方案2】:

      您应该使用 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])
      

      希望对你有帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-10-03
        • 2014-05-08
        • 1970-01-01
        • 1970-01-01
        • 2016-10-05
        相关资源
        最近更新 更多