Python更新列表错误!循环时列表不会在内部更新 网格高度=4 网格宽度=5 单元格=[0,1] 偏移量=(1,0) col=[] 而(单元格[0]
因此,对于这段Python代码,我尝试更新“cell”列表,并将每个新值存储到列表“col”中。但是,如果您在Python中运行此代码,那么打印出来的“cell”的值正是我想要的值,但是当我打印出“col”时,它只是不断重复“cell”最后一个不需要的超出范围的值。我不认为这是一个范围问题,因为while()不会在Python中创建新的范围Python更新列表错误!循环时列表不会在内部更新 网格高度=4 网格宽度=5 单元格=[0,1] 偏移量=(1,0) col=[] 而(单元格[0],python,arrays,list,while-loop,scope,Python,Arrays,List,While Loop,Scope,因此,对于这段Python代码,我尝试更新“cell”列表,并将每个新值存储到列表“col”中。但是,如果您在Python中运行此代码,那么打印出来的“cell”的值正是我想要的值,但是当我打印出“col”时,它只是不断重复“cell”最后一个不需要的超出范围的值。我不认为这是一个范围问题,因为while()不会在Python中创建新的范围 请帮忙!!这可能是我在代码中找不到的一个非常愚蠢的错误 您将四份单元格附加到列。请注意,您没有复制单元格的值:您复制了对象引用!因此,在列中有四个指向原始单
请帮忙!!这可能是我在代码中找不到的一个非常愚蠢的错误 您将四份单元格附加到列。请注意,您没有复制单元格的值:您复制了对象引用!因此,在列中有四个指向原始单元格的指针。每次更新单元格时,更新都会影响每个引用。。。它们都指向同一个物体 您似乎想要一份单元格的副本。只需更改一行,然后请求一个新列表:
grid_height = 4
grid_width = 5
cell = [0, 1]
OFFSETS = (1, 0)
col = []
while (cell[0] < grid_height) and (cell[1] < grid_width):
print cell
col.append(cell)
cell[0] += OFFSETS[0]
cell[1] += OFFSETS[1]
print col
现在您可以获得所需的输出:
col.append(list(cell))
您将四份单元格附加到列。请注意,您没有复制单元格的值:您复制了对象引用!因此,在列中有四个指向原始单元格的指针。每次更新单元格时,更新都会影响每个引用。。。它们都指向同一个物体 您似乎想要一份单元格的副本。只需更改一行,然后请求一个新列表:
grid_height = 4
grid_width = 5
cell = [0, 1]
OFFSETS = (1, 0)
col = []
while (cell[0] < grid_height) and (cell[1] < grid_width):
print cell
col.append(cell)
cell[0] += OFFSETS[0]
cell[1] += OFFSETS[1]
print col
现在您可以获得所需的输出:
col.append(list(cell))
或者您可以使用
单元格[:]
非常感谢!我现在明白了!或者您可以使用单元格[:]
非常感谢!我现在明白了!