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

제목[re]step11 질문있습니다.2020-10-13 09:47
작성자
첨부파일화면 캡처 2020-10-13 094828.png (2.9KB)

작성자 분처럼 for문에서 리스트의 접근할 때 for문 안에서 리스트의 길이를 바꾸면 매우 위험합니다.

위 그림을 보시면

작성자분의 예상대로라면

i는 1,2,3에 차례로 접근해야 하지만,

i는 1에 접근한 후 2를 건너뛴 후, 3에 접근했습니다.


이를 유추해보자면

for i in list

i=list[0], i=list[1], i=list[2] ..를 해주는 것일 겁니다.

그런데 list에서 1을 지우면

제 코드 기준,

danger[0]=1, danger[1]=2, danger[2]=3 이였는데

danger[0]=2, danger[1]=3 이 되는 겁니다.


이로 인해 2에 접근하지 못하는 겁니다.


똑같이, 작성자분의 코드에서 1이 지워지면서 2에 접근할 기회가 없었고, 똑같이 5도 접근할 기회가 없었을 겁니다.


그래서 저는 for문을 통해 리스트를 변경해야 할 땐 리스트를 복사하여 복사한 리스트를 변경시키곤 합니다.


참고하시면 좋을 것 같습니다.



댓글
이전step11 질문있습니다.2020-10-13
다음step 11 질문있습니다.2020-10-13