如何更改将 float('inf') 转换为 str 的 python 方式?
How to change python way of casting float('inf') to str?
我的应用程序正在处理数字,其中有 python 个 float('inf')
。
问题是我希望将这样的数字转换为完整的单词:"Infinity"
.
for x in [float('inf'), float(5.0)]:
print(x)
结果:
inf
5.0
我希望它是:
Infinity
5.0
我能以某种方式设置无穷大在字符串中的表示方式吗?
当然我可以做类似下面的方法:
def cast_num(num):
if num == float('inf')
return 'Infinity'
else:
return str(num)
但是这种方法成本很高——它必须处理每个数字。
有更好的选择吗?
python 中是否有一些我可以设置的标志? (喜欢 'setlocale')
使用 numpy
,这对您来说可能是一个不错的解决方案:
import numpy as np
x = np.array([2.0, float('inf'), 5.0], dtype='<U8')
x[x=='inf'] = 'Infinity'
x
另一种方法是使用简单的字典:
values = {float('inf'):'Infinity'}
i = float('inf')
p = 0.5
print(values.get(i, str(i)))
print(values.get(p, str(p)))
输出
Infinity
0.5
我的应用程序正在处理数字,其中有 python 个 float('inf')
。
问题是我希望将这样的数字转换为完整的单词:"Infinity"
.
for x in [float('inf'), float(5.0)]:
print(x)
结果:
inf
5.0
我希望它是:
Infinity
5.0
我能以某种方式设置无穷大在字符串中的表示方式吗?
当然我可以做类似下面的方法:
def cast_num(num):
if num == float('inf')
return 'Infinity'
else:
return str(num)
但是这种方法成本很高——它必须处理每个数字。
有更好的选择吗?
python 中是否有一些我可以设置的标志? (喜欢 'setlocale')
使用 numpy
,这对您来说可能是一个不错的解决方案:
import numpy as np
x = np.array([2.0, float('inf'), 5.0], dtype='<U8')
x[x=='inf'] = 'Infinity'
x
另一种方法是使用简单的字典:
values = {float('inf'):'Infinity'}
i = float('inf')
p = 0.5
print(values.get(i, str(i)))
print(values.get(p, str(p)))
输出
Infinity
0.5