2016-10-14 2 views
-1

행렬로 사용하려고 시도하는 목록이 있습니다. 마지막 줄의 코드에서 min() 함수의 첫 번째 인수에 '+ 1'을 추가하면 'TypeError : 목록에만 연결할 수 있습니다 (int가 아닌)'오류가 발생합니다. 누군가 제가 비교 목록에서 부르는 가치에 하나를 추가하는 올바른 방법으로 나를 도울 수 있습니까? 감사!목록에서 반환 된 값에 +1을 추가하는 중 오류가 발생했습니다.

아마
matrix = [] 
    for j in range(0,j+1): 
     matrix.append([]) 
    j = len(t) 
    for j in range(0,j+1): 
     i = len(s) 
     for i in range(0,i+1): 
      matrix[j].append([i]) 
    matrix[j][i] = matrix[j-1][i-1] 
    j = len(s) 
    for j in range(1,j+1): 
     i = len(t) 
     for i in range(1,j+1): 
      matrix[j][i]= min((matrix[j-1][i] +1), (matrix[j][i-1])) 
+2

귀하의 코드와 매트릭스의 행이 정확하지이야, 그것은 (사람 전에 도달하는) 기록과 같은 오류를 슬로우 그래서 무슨 일이 일어나고 있는지 말하기 어렵다. 'j'는 무엇으로 시작합니까? –

+0

코드가 정말 혼란 스럽습니다. 변수를 재 할당하면 인덱스 변수가 반복 횟수로 사용됩니다. 실수하기 쉽고 이해하기가 어렵습니다. 인덱스 변수 (* i *, * j *) 만 인덱스로 사용하십시오. – Slava

답변

0

, 당신은 대체해야합니다

matrix[j].append([i]) 

를 나열 정수를 추가 할

matrix[j].append(i) 

으로, 하나 개의 매트릭스 행이 될 수 있습니다 :

[0, 1, 2, 3, ...] 

동안 목록에 목록을 추가하면

[[0], [1], [2], ...] 
관련 문제