헷갈리는 문제 list.remove

BABY CAT·2022년 12월 22일
0

coding test

목록 보기
17/17
list1 = [11, 12, 43, 4, 6]

for i in list1: 

    if not i % 2: //짝수조건
       
        list1.remove(i)
print(list1)
        

이렇게 하면 짝수를 리무브하니까 11 43만 남을 것 같지만
11 43 6 이 남는다

왜냐면 list1에서 리무브를 하면 for i in list1에서의
list1이 바뀌기 때문에
아웃오브인덱스 같은 형태로 6을 꺼내오지 못한다
43도 꺼내지 못한다

12를 꺼냈을 때 이게 리무브 되면 list1에서 원소가 앞으로
한 칸씩 밀리는데 인덱스는 그대로 뒤로 잡으니까
한칸 넘어가버림

4를 꺼냈을 때도 마찬가지로 4가 리무브 되면 거기서
막 인덱스 되니까 6을 꺼내지 않는다.

0개의 댓글