[问题] List of List初始化

楼主: fishlinghu (令狐瑜)   2016-11-22 14:18:30
刚刚打了一段程式码如下
想要initialize一个3D的list
temp = [[[True, True, True]]*3]*5
结果发现
改里面任一个element
其他对应位置的element也会一起改
例如我用temp[0][0][2] = False
则temp[m][n][2]会全部变成False
想请问为何会这样呢?
希望各位高手可以从观念来解释
那正确的initialization方式应该是怎样呢?
非常感谢各位的帮忙与解答
作者: Conjuror (阿纠)   2016-11-22 14:35:00
因为事实上你的 3D 阵列都指向同一个内存位置temp[m][n][x] 的 x 不管是多少都是指同一个位置temp[m][n][0].__sizeof__所以建置的时候需要独立建立,我会这么写

Links booklink

Contact Us: admin [ a t ] ucptt.com