关于python:如何将dict值转换为float

How to convert dict value to a float

本问题已经有最佳答案,请猛点这里访问。

如何将dict值转换为float

1
2
3
4
5
dict1= {'CNN': '0.000002'}

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

我得到的是:

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

但我想要的是下面的浮点值:

1
2
 0.000002
 <class 'float'> # needed type


这里有两件事:第一,实际上,s是字典值的迭代器,而不是值本身。其次,一旦您提取了值,例如通过for循环。好消息是您可以这样做,这是一行:

1
print(float([x for x in s][0]))


您已将数字存储为字符串。引号dict1= {'CNN': '0.000002'}的使用使其成为字符串。相反,将其指定为'dict1='cnn':0.000002

代码:

1
2
3
4
5
dict1= {'CNN': 0.000002}
s=dict1.values()
print (type(s))
for i in dict1.values():
    print (type(i))

输出:

1
2
<class 'dict_values'>
<class 'float'>


如果字典中有许多值,则可以将所有值放在一个列表中,然后取值,但还需要更改类型,因为您的值的类型是strings而不是float类型。

1
2
3
4
5
dict1= {'CNN': '0.000002'}
values = [float(x) for x in list(dict1.values())]

for value in values:
    print(value)

要修改现有的字典,可以迭代视图,并通过for循环更改值的类型。

这可能是比每次检索值时转换为float更合适的解决方案。

1
2
3
4
5
6
7
8
dict1 = {'CNN': '0.000002'}

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

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

<class 'float'>