所以我有一个功能可以将2d列表分成4个较小的列表。这个问题是我获得了网格每个角落的副本,而不是实际的网格。
def split(grid):
tLeft = [row[0:len(grid) / 2 + 1] for row in grid[0:len(grid)/ 2 + 1]]
tRight = [row[len(grid) / 2:] for row in grid[0:len(grid)/ 2 + 1]]
bLeft = [row[0:len(grid) / 2 + 1] for row in grid[len(grid)/ 2:]]
bRight = [row[len(grid) / 2:] for row in grid[len(grid)/ 2:]]
return [tLeft, tRight, bLeft, bRight]
例如,
a = [1, 2, 3, 4]
b = a[0]
b += 1
print a
输出:[1,2,3,4]
但我想要的是[2,2,3,4]。
有没有办法可以在变量中保存网格的每个角落,而不是获取它的副本?
答案 0 :(得分:0)
b = a[0]
将<{1}}的值复制到a[0]
。所以b
独立于list元素。如果您现在增加b
,则列表不会更改。如果要更改列表元素,则必须更改列表元素:
b