Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python更新列表错误!循环时列表不会在内部更新 网格高度=4 网格宽度=5 单元格=[0,1] 偏移量=(1,0) col=[] 而(单元格[0]_Python_Arrays_List_While Loop_Scope - Fatal编程技术网

Python更新列表错误!循环时列表不会在内部更新 网格高度=4 网格宽度=5 单元格=[0,1] 偏移量=(1,0) col=[] 而(单元格[0]

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中创建新的范围 请帮忙!!这可能是我在代码中找不到的一个非常愚蠢的错误 您将四份单元格附加到列。请注意,您没有复制单元格的值:您复制了对象引用!因此,在列中有四个指向原始单

因此,对于这段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))

或者您可以使用
单元格[:]
非常感谢!我现在明白了!或者您可以使用
单元格[:]
非常感谢!我现在明白了!