Python 列表乘法 : [[. ..]]*3 使 3 个列表在修改时相互镜像

标签 python list multiplication

为什么会这样?我真的不明白:

>>> P = [ [()]*3 ]*3
>>> P
[[(), (), ()], [(), (), ()], [(), (), ()]]
>>> P[0][0]=1
>>> P
[[1, (), ()], [1, (), ()], [1, (), ()]]

最佳答案

您对同一个列表进行了 3 次引用。

>>> a = b = []
>>> a.append(42)
>>> b
[42]

你想这样做:

P = [[()] * 3 for x in range(3)]

关于Python 列表乘法 : [[. ..]]*3 使 3 个列表在修改时相互镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6688223/

相关文章:

c++ - 如何从 std::list 中删除一个项目

Python Pandas DataFrame JSON 转换器列表错误

c++ - 需要澄清这个执行乘法的循环

python - 矩阵乘法的 CPU 时间

python - 使用 paramiko 的 scp 不起作用 - ssh 工作正常

python - Python Twisted SSL 的证书生成

python - 在两个列表中查找重叠对象的最快方法

excel - 如何在excel公式中引用行号?

Python正则表达式findall读取.csv文件中的行

python - 无法在python中打开VideoCapture