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
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]))
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)
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'>
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'>