关于看似相似但有些不同的问题 Python 语法

Question concerning seemingly similar but somehow different Python Syntax

我认为这应该有效,但它没有(产生 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' 变量