#python #anaconda #jupyter-notebook #visual-code #html #css #javascript #http

제목[re]Step 11번 마지막 문제 질문2020-10-19 12:23
작성자
첨부파일캡처.PNG (14.5KB)


리스트를 iteration하는 중 리스트 내부의 원소를 삭제하여 발생한 문제입니다.

두번째 iteration을 보면 

[1, 2, 3, 5, 8, 13, 24, 34, 55 에서 2가 삭제되어 [1, 3, 5, 8, 13, 24, 34, 55] 가 된것을 볼 수 있습니다. 

이 때 다음 iteration은 당연히 3이 될것으로 예상합니다.

하지만 iteration은 첫번째 원소, 두번째 원소를 가르키는 방식으로 작동합니다.

따라서 다음은 두번째 원소인 3이 아닌 세번째 원소인 5를 가리키게 됩니다. 이와 같은 문제에는 여러 해결방법이 있습니다.

가장 간단한 방법은 list a는 원본으로 보존하면서 추가적인 list를 생성하여 사용하는 방법이 있을 것입니다.

이와 같은 이유로 iteration을 하면서 iteration을 하는 리스트를 수정하는 것은 좋은생각이 아니므로, 다른 방식으로 접근해보시기 바랍니다.

list.remove(i)는 리스트의 i에 해당하는 값을 모두 삭제하는 것이 아니라 첫번째로 찾은 i값만 삭제한다는 사실도 주의 하시기 바랍니다.




 

댓글
이전Step 11번 마지막 문제 질문2020-10-19
다음[이성원교수님]텀프 데이터2020-10-18