web-dev-qa-db-fra.com

Comment convertir une valeur dict en un flottant

Comment convertir une valeur dict en un flottant

dict1= {'CNN': '0.000002'}

s=dict1.values()
print (s)
print (type(s))

Ce que je reçois, c'est:

dict_values(['0.000002'])
<class 'dict_values'> # type, but need it to be float

mais ce que je veux, c'est la valeur flottante comme ci-dessous:

 0.000002
 <class 'float'> # needed type
6
J87

Deux choses ici: premièrement, s est, en effet, un itérateur sur les valeurs du dictionnaire, pas les valeurs elles-mêmes. Deuxièmement, une fois que vous avez extrait la valeur, par ex. par une boucle for. La bonne nouvelle est que vous pouvez le faire en une seule ligne:

print(float([x for x in s][0]))
2
Paula Thomas

si vous avez plusieurs valeurs dans un dictionnaire, vous pouvez mettre toutes les valeurs dans une liste et prendre ensuite des valeurs, mais vous devez également changer de type car vos valeurs sont de type strings pas float

dict1= {'CNN': '0.000002'}
values = [float(x) for x in list(dict1.values())]

for value in values:
    print(value)
1
Druta Ruslan

Vous avez enregistré le numéro comme dans une chaîne. L'utilisation de guillemets dict1= {'CNN': '0.000002'} en fait une chaîne. Au lieu de cela, affectez-le `dict1 = {'CNN': 0,000002}

Code:

dict1= {'CNN': 0.000002}
s=dict1.values()
print (type(s))
for i in dict1.values():
    print (type(i))

Sortie:

<class 'dict_values'>
<class 'float'>
1
Shaz

Pour modifier votre dictionnaire existant, vous pouvez parcourir une vue et changer le type de vos valeurs via une boucle for.

Cela peut être une solution plus appropriée que la conversion en float chaque fois que vous récupérez une valeur.

dict1 = {'CNN': '0.000002'}

for k, v in dict1.items():
    dict1[k] = float(v)

print(type(dict1['CNN']))

<class 'float'>
1
jpp