为什么Python for循环中元组解包的变量在循环结束后仍可被访问
问题成因解释
1. 为什么第二个循环里能直接使用a和c变量
Python不存在块级作用域,for循环内部定义的变量不会在循环结束后自动销毁,会保留在当前代码所在的作用域中。
你在第一个元组解包的for循环里已经对a、b、c完成了赋值,循环遍历到最后一个元组(4,5,6)时,最终a被赋值为4,c被赋值为6,循环结束后这两个变量依然有效,可以被后续代码直接调用。
2. 为什么输出是4行重复的4和6
第二个循环for item in tup_list的遍历对象是包含2个元组的列表,所以循环体总共会执行2次:
- 循环执行过程中没有修改过
a和c的值,两个变量始终保留第一次循环结束后的结果4和6 - 每次循环都会执行2次print操作,2次循环就会输出4行内容,结果就是两组完全相同的
4和6
内容的提问来源于stack exchange,提问作者WouldYouKindly2814
相关产品推荐
相关产品推荐

