2012-04-01 2 views
0
grid = [ ['x'] * w ] * h 
grid[0[2]] = 'a' 

격자 모양의 구조를 만드는 테스트입니다. 문제는 정수를 첨자화할 수 없기 때문에 중첩 목록에 액세스 할 수 없다는 것입니다. 나는 이런 문제를 겪어 왔지만 그것들은 리콜 문제가 아니다. 어떤 제안?중첩 된 문자열에 액세스하는 방법은 무엇입니까?

+2

(위치 2에서)의 3 요소를 설정합니다 그 그것에 접근하는 법을 배운 후에는 변경 가능한 객체에 대해 배워야 할 것입니다 ... Justin ' – JBernardo

+1

JBernando가 말한 것은 아마 당신이 그 객체를 수정할 계획이라면 변경 가능한 객체에 대해 [...] * n을 사용할 수 없다는 것입니다. 문자열 또는 그리드의 해당 문자열 인스턴스가 모두 자동으로 변경됩니다. 좀 더 자세히 설명하자면, 문자열은 실제로는 파이썬에서 불변 (immutable)하기 때문에'[ 'x'] * w '가 아니라'rows = [[ 'a', 'b', 'c']] * 3 ' 행을 수정하면 다른 모든 행이 변경됩니다. 범위 (numRows)의'에 대해'[[ 'x'를 범위 내에서 (numCols)] 사용하십시오. – ninjagecko

+1

... addendum :''[[x '] * 3 in range (numCols)]'내부 목록이 매번 재생성되기 때문에 작동합니다. – ninjagecko

답변

3

난 당신이 의미가 있다고 생각 :

grid[0][2] = 'a' 

'그리드'(목록)의 첫 번째 요소를 가지고 가고,에 'A'

+1

그게 내가 찾고 있었던 바로 그 것이다. 감사! – nebuch

+0

@FelixTyson : 당신을 도운 응답을 upvote하고 받아들이는 것을 잊지 마십시오. :) –

관련 문제