2015-12-03 34 views
-2

我想初始化一个名单,但后来我不得不改变在上述列表中的每个细胞。我做了:的Python:创建和更改列表

matrix = [[[0] * len(t[0])] * len(t[0])] 

但是当试图改变一个单元格时,它会改变矩阵的整个列。为什么是这样?

+0

LEN(T [0])是可变的,deppends用户。唯一的问题是在列表/矩阵@DylanLawrence – raissa

回答

1

是,问题是要复制引用,而不是创建新的对象,要解决,你可以做这样的事情:

matrix = [[0 for _ in xrange(len(t[0]))] for _ in range(len(t[0]))] 
+0

非常感谢! – raissa

+1

@raissa如果这个答案[解决您的问题(http://stackoverflow.com/help/someone-answers),请考虑[接受它(http://meta.stackexchange.com/questions/5234/how-通过点击答案左边的复选标记/勾号,将其变成绿色,接受答案作品。这标志着您的问题已经解决,您的满意,并为您和回答者授予[声誉](http://stackoverflow.com/help/whats-reputation)。 – MattDMo