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?
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]
Vous devrez utiliser strip()
à cause des bits supplémentaires dans les chaînes.
A2 = [float(x.strip('"')) for x in A1]
utiliser la fonction float () intégrée dans une compréhension de liste.
A2 = [float(v.replace('"','').strip()) for v in A1]
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(',',''))
A2 = [float(x.strip('"')) for x in A1]
fonctionne, @Jake, mais il y a des 0 inutiles