关于看似相似但不知何故不同的 Python 语法的问题

问题描述

我认为这应该有效,但它没有(收益 0):

n1 = [1,2,3,4]
n2 = [5,6,7,8]

pair = zip(n1,n2)

dif = sum(abs(v1 - v2) for v1,v2 in pair)
print(dif)

但是忽略我的 pair 变量并直接使用代码效果很好(产量为 16):

dif = sum(abs(v1 - v2) for v1,v2 in zip(n1,n2))

他们不应该得出相同的答案吗?

解决方法

第一种方法应该有效。如果我猜它为什么不是,也许你在生成器表达式中使用它之前已经迭代了'pair'变量