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

列表推导式实现列表除法遇零值报错问题求助

问题解决

错误原因

你的代码存在两个核心问题:

  1. 索引类型错误:if time_diff[i] > 0里的i是distance[1:]的元素(大概率是浮点数类型的距离值),用浮点数作为列表索引会直接触发TypeError——列表索引只能是整数或切片。
  2. 计算逻辑颠倒:速度的计算公式是「距离差 ÷ 时间差」,但你zip(distance[1:], time_diff[:-1])的顺序把时间差和距离差搞反了,实际计算的是「时间差 ÷ 距离差」,这不是速度值。

修正后的代码

方案1:过滤掉时间差为0的情况

直接判断当前的时间差元素是否大于0,同时调整zip顺序保证计算逻辑正确:

velocity = [j / i for i, j in zip(time_diff[:-1], distance[1:]) if i > 0]

方案2:保留位置,用默认值标记无效数据

如果不想过滤元素,而是用特定值(比如NaN)标记时间差为0时的无效速度,可以这样写:

import math
velocity = [j / i if i > 0 else math.nan for i, j in zip(time_diff[:-1], distance[1:])]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 09:40:31