gpt4 book ai didi

python - 如果将列表附加到自身会发生什么?

转载 作者:太空狗 更新时间:2023-10-30 02:20:16 25 4
gpt4 key购买 nike

如果我尝试将列表附加到自身,会发生什么情况?

# Let's say empty list is created.
some_list = []
# Now, append it with self
some_list.append(some_list)
# Output shows [[...]] on iPython console.

这是什么意思? some_list 会变成递归列表还是什么? some_list 的引用计数会怎样?垃圾收集器将如何处理这个?这个 some_list 什么时候会被垃圾回收?

最佳答案

是的,你创建了一个循环引用;列表对象引用自身。这意味着引用计数增加了 1 个额外引用。

Python 垃圾收集器将处理这种情况;如果没有其他东西引用列表对象,垃圾收集器进程负责打破这个循环:

>>> import gc
>>> some_list = []
>>> gc.get_referents(some_list)
[]
>>> some_list.append(some_list)
>>> some_list[0] is some_list
True
>>> gc.get_referents(some_list)
[[[...]]]

关于python - 如果将列表附加到自身会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24354645/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com