给定以下程序,我希望变量bar
保持不变。
def foo(bar):
bar2 = bar[:]
chg = []
for p in range(4):
for q in range(3):
chg.append([p,q])
for [x,y] in chg:
bar2[x][y] = "xx"
return bar2
def printGrid(grid):
for row in grid:
print " ".join(row)
print
bar = [[str(i) + str(j) for i in range(5)] for j in range(6)]
printGrid(bar)
printGrid(foo(bar))
printGrid(bar)
但是,这是输出:
00 10 20 30 40
01 11 21 31 41
02 12 22 32 42
03 13 23 33 43
04 14 24 34 44
05 15 25 35 45
xx xx xx 30 40
xx xx xx 31 41
xx xx xx 32 42
xx xx xx 33 43
04 14 24 34 44
05 15 25 35 45
xx xx xx 30 40
xx xx xx 31 41
xx xx xx 32 42
xx xx xx 33 43
04 14 24 34 44
05 15 25 35 45
我不明白。前 2 个网格符合预期,但什么时候发生了bar
变化?我怎样才能防止这种情况发生?