2016-12-15 3 views
0

아래 코드를 어떻게 목록 독해 스타일로 작성합니까?중첩 루프 목록 이해

Residual = np.zeros((noRows, noRows)) 
Dist = np.zeros((noRows, noRows)) 
for i in range(noRows): 
    for j in range(noRows): 
     Residual[i][j] = (data[data.columns[2]][i]-data[data.columns[2]][j])**2 
     Dist[i][j] = (data[data.columns[0]][i]-data[data.columns[1]][j])**2 
+0

리스트의 독해 내에서 사전에 넣는 것이 가능 합니다만, 진짜 큰 것입니다. 이걸 원하면 확실하지 않은가요? – Guido

답변

0

우리는 전체 코드가없는,하지만 난 당신의 조각에서 볼 수있는 것과, 솔루션은이 같은해야한다 : 예를 들어

Residual = [(data[data.columns[2]][i]-data[data.columns[2]][j])**2 for i in range(noRows) for j in range(noRows)] 
Dist = [(data[data.columns[0]][i]-data[data.columns[1]][j])**2 for i in range(noRows) for j in range(noRows)] 

:

noRows = 5 
l = [i+j for i in range(noRows) for j in range(noRows)] 
print(l) 

출력 다음과 같이됩니다 :

[0, 1, 2, 3, 4, 1, 2, 3, 4, 5, 2, 3, 4, 5, 6, 3, 4, 5, 6, 7, 4, 5, 6, 7, 8] 
Press any key to continue . . . 

r 경우에는 문장이 "i + j"연산보다 더 복잡해 지겠지 만 목록의 이해는 옳을 것이다.