我有一个真正让我发疯的问题。通常执行 int(20.0)
会导致 20
。到目前为止,一切都很好。但是:
levels = [int(gex_dict[i]) for i in sorted(gex_dict.keys())]
而 gex_dict[i]
返回一个 float ,例如20.0
,结果为:
"invalid literal for int() with base 10: '20.0'"
我离咀嚼最后一 block 键盘只有一步之遥。
最佳答案
'20.0'
是字符串,不是float
;您可以通过错误消息中的单引号来判断。您可以通过首先使用 float
解析它,然后使用 int
截断它来从中获取 int
:
>>> int(float('20.0'))
20
(尽管您可能希望在字典中存储 float 而不是字符串,因为这似乎是您所期望的。)
关于python float 到 in int 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10898215/