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]