web-dev-qa-db-fra.com

Python: conversion d'une chaîne en nombre décimal

J'ai une liste python avec des chaînes dans ce format:

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

Comment convertir ces chaînes en nombres décimaux pour effectuer des opérations arithmétiques sur les éléments de la liste?

21
Sankar A

Si vous voulez que le résultat soit le nombre à virgule flottante binaire le plus proche, utilisez float:

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

Si vous voulez que le résultat soit stocké exactement, utilisez Decimal au lieu de float:

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

Vous devrez utiliser strip() à cause des bits supplémentaires dans les chaînes.

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

utiliser la fonction float () intégrée dans une compréhension de liste.

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

3
farzad

Si vous convertissez le prix (en chaîne) en prix décimal, alors ...

from decimal import Decimal

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

A2 = [float(x.strip('"')) for x in A1] fonctionne, @Jake, mais il y a des 0 inutiles

1
tekknolagi