获得意外的结果来操纵Python中的嵌套列表

时间:2015-03-12 10:41:02

标签: python list nested-lists

我是Python的新手。我用以下代码创建了两个嵌套列表:

m = [[0,0,0],[0,0,0],[0,0,0]]
n = [[0]*3]*3

如果我没有弄错,这是创建相同列表的两种不同方式,因此m和n应该相同。但是当我尝试修改一个元素时,请说:

m[1][0] = 4
n[1][0] = 4

我得到的是:

m = [[0, 0, 0], [4, 0, 0], [0, 0, 0]]
n = [[4, 0, 0], [4, 0, 0], [4, 0, 0]]

在m中,我只是按照我的预期修改m [1] [0]元素。但在n中,所有列表的第一个元素都被修改。

为什么我会得到不同的结果? m和n真的相同吗?

为什么n列表的行为是这样的?

0 个答案:

没有答案