gpt4 book ai didi

python - 有人可以解释 python 生成器表达式中空字典的行为吗?

转载 作者:太空狗 更新时间:2023-10-30 01:14:37 25 4
gpt4 key购买 nike

<分区>

当我们偶然发现以下行为时,我和一些 friend 正在讨论与 Python 中的内存管理相关的事情:

In [46]: l = ({} for _ in range(6))

In [47]: [ id(i) for i in l]
Out[47]:
[4371243648, # A
4371245048, # B
4371243648, # A
4371245048, # B
4371243648, # etc.
4371245048]

这里令人惊讶的是,我们似乎没有明确定义的行为:字典既不是每次都是新的,也不是每次都是相同的引用。

最重要的是,我们得到了这种奇怪的行为(在这两个片段之间没有代码在解释器中运行)。

In [48]: m = ({} for _ in range(6))

In [49]: [ id(i) for i in m]
Out[49]:
[4371154376, # C
4371245048, # B (same B as above!)
4371154376, # C
4371245048, # B
4371154376,
4371245048]

谁能解释这种行为?使用列表理解(l = [{} for _ in range(6)])显示每个字典的不同地址。

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