for문 도중 값이 바뀌는 것에 주의
>>> a = list('asdf1234') >>> a ['a', 's', 'd', 'f', '1', '2', '3', '4'] >>> for x in a: a.remove(x) ... >>> >>> a ['s', 'f', '2', '4'] for문 도중에 a의 배열이 변하게 하면, 의도치 않은 결과를 갖게 될 수 있다. asdf1234에서 a를 지우면 sdf1234가 남는데, for문은 a[0]을 처리했으니 a[1]을 처리하려고 할 것이다. 그런데 이 시점에서 a[1]은 s가 아닌 d이다. 즉 a[1]을 처리하고나면 sf1234가 남는다. sf1234에서 a[2]는 1이므로 처리하면 sf234... 이런 식으로 가서 마지막엔 sf24만 남게 된다. 그렇다면 for문 도중에 배열이 변하지 않게 하려면 어..
2021. 5. 19.