最近看到一段代码看不懂。这是示例:
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
>>>
https://stackoverflow.com/questions/65497847/
相关文章:
c++ - fatal error LNK2019 C++,Unreal Engine Build
git - 如何为 gerrit 事件配置 Gerrit Webhooks
android-studio - flutter SDK 不完整
reactjs - 接口(interface)命名约定(接口(interface)名称与组件名称冲突
python - 根据所选列过滤重复的行并与 Pandas 中的另一个数据框进行比较
python - 功能测试没有按预期进行(AoC 第 4 天的一部分)
firebase - Flutter Firestore 离线数据库