Py学习  »  Python

为什么python在分配matrix元素时会根据构建矩阵的方式做出不同的反应?[复制品]

Yassine Jiyar • 5 年前 • 2039 次点击  

我创建了一个列表列表并希望将项目附加到单个列表,但是当我尝试附加到其中一个列表时( a[0].append(2) ,该项将添加到所有列表中。

a = []
b = [1]

a.append(b)
a.append(b)

a[0].append(2)
a[1].append(3)
print(a)

给予: [[1, 2, 3], [1, 2, 3]]

但我希望: [[1, 2], [1, 3]]

改变我构建列表初始列表的方式,使 b 一个浮点数而不是一个列表并将括号放在里面 .append() ,提供所需的输出:

a = []
b = 1

a.append([b])
a.append([b])

a[0].append(2)
a[1].append(3)
print(a)

给予: [[1,2],[1,3]]

但是为什么呢?结果应该不同,这不是直觉。我知道这和 multiple references to the same list ,但我不知道发生在哪里。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/43697
 
2039 次点击  
文章 [ 3 ]  |  最新文章 5 年前