最近看到一段代码看不懂。这是示例:
a = {}
a['value'] = a
print(a)
>>>> {'value': {...}}
因此,这会创建无限数量的初始字典副本,类似于:
{
'value': {
'value': {
'value': {
...
}
}
}
}
那么,为什么会这样呢?这是某种递归的东西吗?
最佳答案
您的代码不会复制任何内容。 Python 知道你的变量是递归的,也就是说,它引用自己,并且不会永远打印相同的东西。相反,它通过编写 ...
来打破循环引用。
您可以使用 is
关键字确定 a["value"]
确实不是您字典的副本:
>>> a = {}
>>> a["value"] = a
>>> a["value"] is a # they are the same object
True
>>>
关于python - 将 dict 值设置为自身会创建无限副本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65497847/