首页 新闻 会员 周边 捐助

为什么打印(1,2) (3,7) (1,2) (5,9)

0
[已关闭问题] 关闭于 2025-09-03 10:14
z = zip([1, 3, 5], [2, 7, 9])

for x in z:          # 外层
    for y in z:      # 内层(跟外层共用同一个 zip 迭代器)
        print(x, y, end=' ')
_java_python的主页 _java_python | 小虾三级 | 园豆:1000
提问于:2025-09-03 10:12
< >
分享
所有回答(1)
0

外层、内层用的是同一个 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) 被打印了两次

_java_python | 园豆:1000 (小虾三级) | 2025-09-03 10:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册