z = zip([1, 3, 5], [2, 7, 9]) for x in z: # 外层 for y in z: # 内层(跟外层共用同一个 zip 迭代器) print(x, y, end=' ')
外层、内层用的是同一个 zip 迭代器。print(z1 is z2,z1 is z) # True True 就是自身
print 语句 总是先打印外层变量 x
,再打印内层变量 y
。
x = (1, 2) ← 外层刚取出来的值,不会变
y = (3, 7) ← 内层第一次 next 得到的新值
外层那一次取出来的 (1, 2)
一直没有变,而 内层每一次取新的 y
都会把同一个 x
再打印一次。
于是 (1, 2)
被打印了两次