You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python因循环引用生成[1,2, [...]]结果的原理是什么?

理解Python循环引用的列表生成逻辑

咱们一步步拆解这段代码的执行过程,搞清楚最终结果的来龙去脉:

  1. 创建初始列表
    执行L = [1,2]时,Python在内存中生成了一个列表对象(可以把它想象成装着1和2的盒子),变量L其实是贴在这个盒子上的「标签」——它的作用是指向这个列表对象的内存地址,而非直接存储列表内容。

  2. 添加循环引用
    执行L.append(L)时,append方法会把L指向的对象(也就是那个装着1和2的盒子本身)添加到列表末尾。这时候,列表对象的第三个元素就变成了指向自己的引用——相当于盒子里又放了一张写着「指向这个盒子」的纸条,形成了循环引用。

  3. 打印时的特殊处理
    当你输入L并打印时,Python的内置打印机制会遍历列表元素:

    • 前两个元素是普通整数1和2,直接显示;
    • 第三个元素是列表自身的引用,Python检测到这种循环引用后,为了避免无限递归打印(列表套列表,无限嵌套下去),会用[...]代替这个循环部分,最终输出[1,2, [...]]。

本质上这个结果是Python对循环引用做的可视化简化,背后的列表确实是一个包含自身的循环结构。

内容的提问来源于stack exchange,提问作者Thái Sơn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 17:39:33