2012-02-09 4 views
2

아직 나에게 이해가되지 않습니다. 따라서 첫 번째 while 루프는 j = 4가 될 때까지 행렬 [0] [0], 행렬 [0] [1], 행렬 [0] [2] 및 행렬 [0] [3]을 인쇄하고 len(matrix[i]) . 좋아,하지만 지금은 튀어 나와 다시 while i<len(matrix):로 돌아 간다. 이렇게하면 j=0을 다시 읽지 않고 중첩 된 while 루프로 곧장 돌아갈 수 있습니까?행렬이있는 중첩 루프 -이 두 번째 행렬은 왜 모두 사용합니까?

matrix = [[4,5,6,7],[2,4,9,3]] 
i=0 
while i<len(matrix): 
    j=0 
    while j<len(matrix[i]): 
     print matrix[i][j] 
     j=j+1 
    i=i+1 
+0

i ZCJ

+3

질문을 편집하여 문장을 수정할 수 있습니다. –

+1

이 명령은'4 5 6 7 2 4 9 3'을 출력합니다. 이것은 예상했던대로입니다. 그게 어떻게 할거라고 생각 했니? – poolie

답변

4

네, 그게 정확히 그게.

는 인쇄 문을 추가하여 자신에 대한 참조 :

그런데
matrix = [[4,5,6,7],[2,4,9,3]] 
i=0 
while i<len(matrix): 
    j=0 
    while j<len(matrix[i]): 
     print 'i = {}, j = {}, element = {}'.format(i,j,matrix[i][j]) 
     print matrix[i][j] 
     j=j+1 
    i=i+1 

, 즉 파이썬 루프 매우 unpythonic 방법입니다. 이것은 동등하고 언어에 더 적합합니다.

matrix = [[4,5,6,7],[2,4,9,3]] 
for row in matrix: 
    for element in row: 
    print element