2017-12-07 9 views
-1

빈 2D 목록을 만드는이 함수가 있습니다. getal X getal은 넓고 높습니다. 제가 코드를 실행할 때 비록 제가r = r + 1 작동하지 않는 동안 목록을 int?

Traceback (most recent call last): 
     line 49, in 
    bord = rooster(5, "<>>>>>>>>>>>>>>>>>>>>>>>>") 
     line 38, in rooster 
    r = r + 1 
TypeError: can only concatenate list (not "int") to list 
  • R은 기판의 행을 나타내며,이 코드의 카운터이 오류를 얻는다.
  • k는 보드의 열을 나타내는 카운터이기도합니다.
  • reeks는 문자로 분할되는 문자열입니다.

코드의 목적은 보드 getal X getal을 넓게 만들고 'reeks'의 모든 문자를 별도의 슬롯에 삽입하는 것입니다. 이런 일에 이전 증가 루프

def rooster(getal, reeks): 
    #vierkant = [['']*getal]* getal 
    vierkant = [[0 for r in range(getal)] for k in range(getal)] 
    r = 0 
    k = 0 
    reekslist = list(reeks) 
    while r < getal: 
     k = 0 
     while k < getal: 
      vierkant[r][k] = reekslist[k + r*getal] 


      k += 1 
     for r in vierkant: 
      print(r) 
     r = r + 1 
bord = rooster(5, "<>>>>>>>>>>>>>>>>>>>>>>>>") 
+2

'r for in vierkant'를 실행하면 'r'은 'vierkant'에있는 모든 내용이됩니다. 이 경우에는 목록. – khelwood

+0

StackOverflow에 오신 것을 환영합니다. 도움말 설명서의 게시 지침을 읽고 따르십시오. [최소한의 완전하고 검증 가능한 예제] (http://stackoverflow.com/help/mcve)가 여기에 적용됩니다. MCVE 코드를 게시하고 문제를 정확하게 설명하기 전까지는 효과적으로 도움을 드릴 수 없습니다. 게시 된 코드를 텍스트 파일에 붙여넣고 설명한 문제를 재현 할 수 있어야합니다. – Prune

+0

오류 메시지는 'r'이 목록임을 나타냅니다. 게시 한 코드가 여러 가지 방법으로 실행되지 못하기 때문에 결과를 재현 할 수 없습니다. – Prune

답변

1

은 변경 당신을 :

for v in vierkant: 
    print(v) 

당신이 vierkant의 행이며, 새로운 값을 할당받을 위에 for 루프에서 R을 사용하는 경우 어떤 목록입니다.