在python中更改列表值列表

时间:2014-05-25 03:35:16

标签: python list linked-list

我试图通过迷宫追踪pacman制造的路径。迷宫位于列表清单中。我有一个(基本上)由pacman通过迷宫所采用的路径的链表。当我循环遍历列表时,我想将链接列表中的每个值更改为'*'。我不断得到错误TypeError: 'str' object does not support item assignment,经过一些研究,我发现数组是不可变的,我每次都要重写数组或追加它。我有一个简单的方法在python中执行此操作吗? 这是我到目前为止的代码:

while(pacman_r != originalR or pacman_c != originalC):
    i = i + 1
    path.append([pacman_r, pacman_c])
    grid[pacman_r][pacman_c] = '*'
    pacman_r = cellGrid[pacman_r][pacman_c].parentx
    pacman_c = cellGrid[pacman_r][pacman_c].parenty

我在第4行遇到问题。

1 个答案:

答案 0 :(得分:1)

这不起作用的原因是因为您正在尝试就地编辑str对象(在python中是不可变的)。相反,你可以将整个事物重新分配给有意义的东西,如:

grid[pacman_r] = grid[pacman_r][:pacman_c] + '*' + grid[pacman_r][pacman_c+1:]

我没有对此进行测试,但是将列表分配给另一个列表应该有效。