2013-12-19 8 views
1

현재 내 변수를 할당,이 있습니다(파이썬) 튜플/목록 할당

rows = [[convert[random.randint(0,7)] for _ in range(5)] for _ in range(5)] 
printedrows = [("[X]","[X]","[X]","[X]","[X]"," <- V: {} TOTAL: {}".format(row.count(0), sum(row))) for row in rows] 

이 임의의 값으로 5 행 작성

('[X]', '[X]', '[X]', '[X]', '[X]', ' <- V: 1 TOTAL: 9') 
('[X]', '[X]', '[X]', '[X]', '[X]', ' <- V: 2 TOTAL: 5') 
('[X]', '[X]', '[X]', '[X]', '[X]', ' <- V: 0 TOTAL: 6') 
('[X]', '[X]', '[X]', '[X]', '[X]', ' <- V: 1 TOTAL: 10') 
('[X]', '[X]', '[X]', '[X]', '[X]', ' <- V: 0 TOTAL: 8') 

내가 "X를 재 할당하고 싶습니다를 "를 다음과 같이 읽습니다 :

('[X]', '[2]', '[X]', '[X]', '[X]', ' <- V: 1 TOTAL: 9') 
('[1]', '[X]', '[3]', '[0]', '[1]', ' <- V: 2 TOTAL: 5') 
('[X]', '[X]', '[1]', '[X]', '[X]', ' <- V: 0 TOTAL: 6') 
('[1]', '[X]', '[X]', '[X]', '[2]', ' <- V: 1 TOTAL: 10') 
('[X]', '[3]', '[X]', '[2]', '[X]', ' <- V: 0 TOTAL: 8') 

그러나 내가 이것을 사용할 때 : (예 - 위치는 사용자가 결정합니다)

convert = {0:0,1:1,2:2,3:3,4:0,5:1,6:2,7:1} 

printedrows[y][x] = rows[y][x] 
TypeError: 'tuple' object does not support item assignment 

이 오류를 수정하여 오류없이 값을 변경할 수있는 방법이 있습니까? 감사. 당신은 대신에 그 목록을 만들 수 있습니다

printedrows = [("[X]","[X]","[X]","[X]","[X]"," <- V: {} TOTAL: {}".format(row.count(0), sum(row))) 
       for row in rows] 

:

답변

5

당신은 튜플과리스트를 작성하는

printedrows = [["[X]","[X]","[X]","[X]","[X]"," <- V: {} TOTAL: {}".format(row.count(0), sum(row))] 
       for row in rows] 

참고 대괄호가 둥근 괄호에 반대.