为什么会出现TypeError:“ int”对象无法使用for循环下标,而不能与python中的列表理解下标

脉冲表现

这将返回类型错误

difference = [1, 2, 3, 4, 5]

for i in range(len(difference)-1):
    difference = difference[i+1] - difference[i]

但这很好

difference = [difference[i+1]-difference[i] for i in range(len(difference)-1)]

我在这里想念什么?我以为他们是一样的。

巴尔玛

您正在difference循环中重新分配变量第一次迭代后,它不再包含列表,而是包含的结果difference[1] - difference[0],它是一个整数。

您应该为结果创建一个新列表。

newdiff = []
for i in range(len(difference)-1):
    newdiff.append(difference[i+1] - difference[i])

第二个版本起作用是因为在完成列表理解之前,您不会重新分配变量,而不是每次循环时才重新分配。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章