Exercise 38 질문
저도 강의를 듣고 있는 사람인데 질문을 보고 궁금해서 한번 해보다가 답글을 달아봅니다. for i in num_list: 문장과 if i 문장 사이에 print(i)를 넣어서 출력을 해봤구요. 결과는 0, -11, 22, -11, -44가 나오네요. 제일 처음 제거되는 -11 뒤의 31, 그 다음 -11 뒤의 33, -44 뒤의 -55가 출력이 안되네요. num_list.remove(i)가 실행될 때마다 for loop가 참조할 num_list가 갱신되면서 문제가 되는 것 같은데요. for loop가 돌아갈때 num_list[0] = 0, num_list[1] = -11, num_list[2] = 22(-11이 제거되면서 인덱싱할 때 31은 뛰어넘음), num_list[3] = -11, num_list[4] = -44(마찬가지로 33을 뛰어넘음), 그리고 종료 (-11, -11, -44가 제거되고 나면 len(num_list) = 8 에서 len(num_list) = 5가 되므로 num_list[4]까지 접근하면 for loop가 종료된다. 이때 num_list[4] = -55가 된다.) 이렇게 돌아가는것 같은데... for loop가 list를 참조할 때 내부적으로 인덱스 번호를 카운트 해주는건지(?) 궁금하네요.