python float to int转换

lan*_*uze 7 python floating-point

我有一个让我疯狂的问题.通常做int(20.0)会导致20.到现在为止还挺好.但:

levels = [int(gex_dict[i]) for i in sorted(gex_dict.keys())]
Run Code Online (Sandbox Code Playgroud)

while gex_dict[i]返回一个float,例如20.0,结果为:

"invalid literal for int() with base 10: '20.0'"
Run Code Online (Sandbox Code Playgroud)

我离咀嚼最后一块键盘只有一步之遥.

Fre*_*Foo 15

'20.0'是一个字符串,而不是一个float; 你可以通过错误消息中的单引号来判断.您可以int通过先解析它来获取它float,然后使用以下命令将其截断int:

>>> int(float('20.0'))
20
Run Code Online (Sandbox Code Playgroud)

(虽然你可能想在你的字典中存储花车而不是字符串,因为这是你似乎期待的.)