这将返回类型错误
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] 删除。
我来说两句