Python列表乘法:[[...]] * 3生成3个列表,它们在修改后会相互镜像 [英] Python list multiplication: [[...]]*3 makes 3 lists which mirror each other when modified
本文介绍了Python列表乘法:[[...]] * 3生成3个列表,它们在修改后会相互镜像的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
为什么会这样?我不太了解:
Why this is happening? I don't really understand:
>>> P = [ [()]*3 ]*3
>>> P
[[(), (), ()], [(), (), ()], [(), (), ()]]
>>> P[0][0]=1
>>> P
[[1, (), ()], [1, (), ()], [1, (), ()]]
推荐答案
您已对同一列表进行了3次引用.
You've made 3 references to the same list.
>>> a = b = []
>>> a.append(42)
>>> b
[42]
您要执行以下操作:
P = [[()] * 3 for x in range(3)]
这篇关于Python列表乘法:[[...]] * 3生成3个列表,它们在修改后会相互镜像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文