编辑python列表中的元素

时间:2014-06-05 16:55:45

标签: python list

所以我有一个功能可以将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]。

有没有办法可以在变量中保存网格的每个角落,而不是获取它的副本?

1 个答案:

答案 0 :(得分:0)

b = a[0] 将<{1}}的值复制到a[0]。所以b独立于list元素。如果您现在增加b,则列表不会更改。如果要更改列表元素,则必须更改列表元素:

b