gpt4 book ai didi

python:FOR循环,迭代赋值未分配正确的值

转载 作者:太空宇宙 更新时间:2023-11-03 16:39:06 27 4
gpt4 key购买 nike

我正在制作一个列表,其中嵌套了一个列表。我需要遍历第二个列表,并为一个位置分配一个值。所以我写了这个

matrix=[]
list=[0,1,2,3,4,5,6,7,8,9]
def board():
for x in range(10):
for y in range(10):
matrix.append([[x,y],1]) #A grid is made, with a spare element
for i in range(100):
matrix[i][1]=list #The grid is two elements, co-ords...
#and a list of attributes


board()
for i in range(100):
matrix[i][2][0]=i #The first attribute,(in 2nd of2elements),
print(matrix) ##SHOULD be its own position

此代码的所有变体都会产生相同的结果:

Error or the number "99" being placed in EVERY INSTANCE of that location. That is to say my final FOR loop seems to be assigning "99" NOT i...

我已经尝试了几种这种方法的变体(唉,我更喜欢在 FOR 循环内生成数字)我花了大约 6 个小时盯着这个。我所有的逻辑告诉我,计算机应该知道我希望第二个元素的第一个元素是计数 0,1,2...我知道这不可能是因为语言限制,所以请告诉我我没有看到什么。

最佳答案

矩阵[i][1]=列表

执行此操作时,将在矩阵数组中分配相同的数组。因此,如果您更改一项,所有项目都会更改。相反,像这样分配列表的副本:

矩阵[i][1] = 列表[:]

正如@Bakuriu指出的,在python 3中你可以使用list.copy()方法。在 Python 2 中,您可以使用 copy 模块通过 l2 = copy.copy(l1)

复制容器

此外,您应该更改变量“list”的名称,因为“list”是 python 中的内置类型。

关于python:FOR循环,迭代赋值未分配正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36983088/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com