python float to int转换

我有一个让我疯狂的问题.通常做int(20.0)将导致20.到目前为止一切顺利.但:

levels = [int(gex_dict[i]) for i in sorted(gex_dict.keys())]

而gex_dict [i]返回一个浮点数,例如20.0,结果:

"invalid literal for int() with base 10: '20.0'"

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

最佳答案
’20 .0’是一个字符串,而不是浮点数;你可以通过错误消息中的单引号来判断.你可以先用float解析它,然后用int截断它,从中得到一个int:

>>> int(float('20.0'))
20

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

转载注明原文:python float to int转换 - 代码日志