Python:将字符串转换为十进制数

问题描述 投票:22回答:6

我有一个python列表,其中包含以下格式的字符串:

A1 = [' "29.0" ',' "65.2" ',' "75.2" ']

如何将这些字符串转换为十进制数以对列表元素执行算术运算?

python string floating-point decimal
6个回答
51
投票

如果希望结果为最接近的二进制浮点数,请使用float

result = [float(x.strip(' "')) for x in A1]

如果你想要存储的结果完全使用Decimal而不是float

from decimal import Decimal
result = [Decimal(x.strip(' "')) for x in A1]

3
投票

由于字符串中的额外位,您将需要使用strip()

A2 = [float(x.strip('"')) for x in A1]

3
投票

在列表推导中使用内置的float()函数。

A2 = [float(v.replace('"','').strip()) for v in A1]


3
投票

如果您将价格(字符串)转换为十进制价格,那么......

from decimal import Decimal

price = "14000,45"
price_in_decimal = Decimal(price.replace(',',''))

1
投票

A2 = [float(x.strip('"')) for x in A1]作品,@杰克,但有不必要的0


-1
投票

如果要将字符串转换为float:

import re
A1 = [' "29.0" ',' "65.2" ',' "75.2" ']
float_values = [float(re.search(r'\d+.\d+',number).group()) for number in A1]
print(float_values)
>>> [29.0, 65.2, 75.2]
© www.soinside.com 2019 - 2024. All rights reserved.