Python:如何在列表中只更改列表中的一个变量?
因此,我在列表中创建了一个列表,并将其打印出来:Python:如何在列表中只更改列表中的一个变量?,python,list,Python,List,因此,我在列表中创建了一个列表,并将其打印出来: a = [] b = [] for i in range(3): a.append(0) for i in range(3): b.append(a) print(b) 结果是: [[0,0,0],[0,0,0],[0,0,0]]如预期 但是当我尝试用 b[0][0] = 1 print(b) 结果显示为:[[1,0,0],[1,0,0],[1,0,0]] 如何仅将1赋给第一个值,以便获得:[[1,0,0],[0,0,0],[
a = []
b = []
for i in range(3):
a.append(0)
for i in range(3):
b.append(a)
print(b)
结果是:
[[0,0,0],[0,0,0],[0,0,0]]
如预期
但是当我尝试用
b[0][0] = 1
print(b)
结果显示为:[[1,0,0],[1,0,0],[1,0,0]]
如何仅将1赋给第一个值,以便获得:
[[1,0,0],[0,0,0],[0,0,0]]
?在b
中,对同一列表(a
)有三个引用。相反,创建三个列表。最简单的方法是在构建b
时复制a
:
for i in range(3):
b.append(a[:])
您在
b
中有三个对同一列表(a
)的引用。相反,创建三个列表。最简单的方法是在构建b
时复制a
:
for i in range(3):
b.append(a[:])
在
b
中有三个相同的列表。您可以通过以下方式删除此依赖项:
b = []
for i in range(3):
b.append([0]*3)
print b
在
b
中有三个相同的列表。您可以通过以下方式删除此依赖项:
b = []
for i in range(3):
b.append([0]*3)
print b
您可以将列表构建为
[[0用于范围内(3)]用于范围内(3)]
您可以将列表构建为[[0用于范围内(3)]用于范围内(3)]