파이썬 for문과 리스트 원소 제거 주의
파이썬에서 for문과 함께 리스트의 원소를 제거할 때 문제가 발생한다. a = [1,2,3,4,5,6,7,8,9] for num in a: if num%2 == 0: a.remove(num) 다음 코드를 실행하면 a = [1,3,5,7,9]가 나온다. 이상 없어보이지만 실은 코드가 실행될 때 for문은 9번이 아닌 5번만 실행된다. 첫번째 실행하면 num은 1이기 때문에 삭제가 일어나지 않는다. 두번째부터 문제가 발생한다. num은 짝수이기 때문에 if문이 작동한다. 그러면 a = [1,3,4,5,6,7,8,9] 가 된다. 세번째 for문이 실행될 때, num은 3이 아니라 4가 된다. for문이 세번째 실행되면서 리스트의 3번째 요소를 가져온다. 그래서 공교롭게도 나머지 for문이 실행되면서 짝수만 접..