Python: преобразование строки в десятичное число
У меня есть список python со строками в этом формате:
A1 = [' "29.0" ',' "65.2" ',' "75.2" ']
Как преобразовать эти строки в десятичные числа для выполнения арифметических операций над элементами списка?
Ответы
Ответ 1
Если вы хотите, чтобы результат использовался как ближайший двоичный номер с плавающей запятой, используйте float
:
result = [float(x.strip(' "')) for x in A1]
Если вы хотите, чтобы полученный результат точно использовал Decimal
вместо float
:
from decimal import Decimal
result = [Decimal(x.strip(' "')) for x in A1]
Ответ 2
используйте встроенную функцию float() в понимании списка.
A2 = [float(v.replace('"','').strip()) for v in A1]
Ответ 3
Вам нужно будет использовать strip()
из-за дополнительных бит в строках.
A2 = [float(x.strip('"')) for x in A1]
Ответ 4
A2 = [float(x.strip('"')) for x in A1]
работает, @Jake, но нет необходимости 0s
Ответ 5
Если вы конвертируете цену (в строке) в десятичную цену, тогда...
from decimal import Decimal
price = "14000,45"
price_in_decimal = Decimal(price.replace(',',''))
Ответ 6
Если вы конвертируете строку в 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]