gpt4 book ai didi

python - 从 float 中删除尾随 '.0'

转载 作者:IT老高 更新时间:2023-10-28 21:33:52 27 4
gpt4 key购买 nike

我正在寻找一种将数字转换为字符串格式的方法,删除任何多余的 '.0'

输入数据是 float 和字符串的混合体。期望的输出:

0 --> '0'

0.0 --> '0'

0.1 --> '0.1'

1.0 --> '1'

我想出了以下生成器表达式,但我想知道是否有更快的方法:

(str(i).rstrip('.0') if i else '0' for i in lst)

真值检查是为了防止 0 变成空字符串。

编辑:我现在或多或少可以接受的解决方案是:

('%d'%i if i == int(i) else '%s'%i for i in lst)

在 python 中没有优雅的方式来处理这个(相当简单的)案例,这似乎很奇怪。

最佳答案

PEP 3101 :

'g' - General format. This prints the number as a fixed-point      number, unless the number is too large, in which case      it switches to 'e' exponent notation.

Old style (not preferred):

>>> "%g" % float(10)
'10'

新风格:

>>> '{0:g}'.format(float(21))
'21'

新样式 3.6+:

>>> f'{float(21):g}'
'21'

关于python - 从 float 中删除尾随 '.0',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/385325/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com