python 中的问题

有人知道这是为什么吗

a=[5555]

b=[a] #list列表是可变数据类型,b列表中是一个a的引用地址

a.append(b) #对a 添加 b,b列表中的a也添加了一个b。

这样就 a中有b,b中有a 的循环引用了。

如果正常输出a的话会是一个无穷的循环引用。

a列表[5555, b列表[

    a列表[5555, b列表[

        a列表[5555, b列表[

            a列表[5555, b列表[

                无穷的循环引用a列表[......]

            ]]

        ]]

    ]]

]]

禁止套娃

关于list中添加元素, 有朋友之前问过类似的, 请参考:

https://ask.csdn.net/questions/7411099?spm=1005.2025.3001.5141

https://blog.csdn.net/nlxxqqh1/article/details/88319721

 

哪个地方和你的预期有差别?

list是可变数据类型,围绕这个不难理解

当b 指向 [a]  的时候,b 已经是个可变的数据类型,a append b 的时候,相当于 a 里面嵌套了无数的 [a]  ,无穷大,所以用 省略来表示,还有一个注意点是,默认是浅复制,复制的是引用,才会造成这种问题

您好,我是有问必答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632