gpt4 book ai didi

python - 在 Python 中扩展列表列表?

转载 作者:太空狗 更新时间:2023-10-29 18:18:23 25 4
gpt4 key购买 nike

<分区>

我可能遗漏了一些关于列表扩展的预期行为的信息,但为什么会发生以下情况?

x = [[],[]]
y = [[]] * 2

print x # [[],[]]
print y # [[],[]]
print x == y # True

x[0].extend([1])
y[0].extend([1])

print x # [[1],[]], which is what I'd expect
print y # [[1],[1]], wtf?

我猜 * 运算符在这里做了一些意想不到的事情,尽管我不确定是什么。似乎在幕后发生了一些事情,这使得原始 x 和 y(在调用扩展之前)实际上并不相等,即使 == 运算符和 repr 都是会让它们看起来好像是相同的。

我之所以遇到这个问题,是因为我想预先填充一个空列表的列表,其大小在运行时确定,然后我意识到它并没有像我想象的那样工作。我可以找到更好的方法来做同样的事情,但现在我很好奇为什么这不起作用。这是 Python 2.5.2 顺便说一句——我没有安装更新的版本,所以如果这是一个错误,我不确定它是否已经修复。

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