2014-05-25 1 views
0

미로를 통해 팩맨이 만든 경로를 추적하려고합니다. 미로는 목록의 목록에 있습니다. 나는 미로를 통해 팩맨이 취한 경로 목록을 (본질적으로) 연결했습니다. 목록을 반복하면서 나는 연결된 목록에있는 모든 값을 '*'으로 변경하고 싶습니다. 약간의 연구가 끝나면 배열이 변경되지 않는다는 것을 알게되고 계속 TypeError: 'str' object does not support item assignment이라는 오류가 계속 발생합니다. 배열의 각 시간을 재 작성하거나에 추가 할 내가 파이썬에서이 작업을 수행 할 수있는 간단한 방법이 있나요
가 여기에 지금까지 가지고 그 코드입니다 :.?파이썬에서 제자리에있는 목록 값 목록을 변경하십시오.

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 번째 줄

+0

'print grid [pacman_r] [pacman_c]'를 한 줄 먼저 쓰고, 왜이 에러가 나옵니까? – alfasin

답변

1

str 개체를 현재 위치에서 편집하려고 시도하는 이유가 있습니다 (파이썬에서는 불변). 대신,

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

내가 이것을 테스트하지 못했지만, 다른 목록이 작동해야에 목록을 지정 : 당신과 같이 의미있는 일에 모든 일을 할당 - 다시 할 수 있습니다.

관련 문제