You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python将列表字符串元素转整数报ValueError的解决方法

报错产生原因
  • 直接触发原因:你列表里存的是带小数点的字符串(比如'0.93'),Python的int()没法直接把这种表示小数的字符串转成整数——它只能直接转长得像整数的字符串,比如'1'、'256'这种,碰到带小数点的字符串就会抛你看到的这个值错误。
  • 原代码还有两个隐藏问题:一是做除法用的no_of_times根本没定义,就算类型转对了也会报变量不存在的错误;二是如果你绕开直接转int的报错,先转float再强转int,你列表里0.93、0.87这种小于1的数会被直接截断成0,算出来的平均值完全不对,根本满足不了需求。
正确实现方案

算平均值根本不需要把元素转成整数,先把字符串转成浮点数计算就行,代码如下:

list_1 = ['0.93', '1.00', '1.00', '0.93', '0.87']
print("The list: ", list_1)
# 批量把字符串转成浮点数
num_list = [float(item) for item in list_1]
# 求和除以元素总数就是平均值,不需要额外定义计数变量
avg = sum(num_list) / len(num_list)
print("平均值:", avg)

运行后得到的正确平均值是0.946。

如果你后续确实有转整数的需求,必须先转float再转int,写法是[int(float(x)) for x in list_1],但这种方式会丢失小数精度,完全不适合当前的平均值计算场景。


内容的提问来源于stack exchange,提问作者Dev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 22:21:30