728x90
for 문 안에서 pop을 사용하면 내가 생각한 대로 작동하지 않을 수 있다.
문제
a = [1,2,3,4]
for i in a:
print(a.pop(0))
print(a)
1, 2, 3, 4가 출력되고 a에 아무것도 남지 않기를 바랐는데 다음과 같은 결과가 나왔다. 왜 이런 결과가 나오게 됐을까?
for문은 현재 a의 index를 따르기 때문이다.
해결
나같은 경우에는 list를 copy 하여 사용한다.
a = [1,2,3,4]
b = a.copy()
for i in b:
print(a.pop(0))
print(a)
이 방법이 아니더라도 자신의 쓰임에 맞게 쓰면 된다.
728x90
'Python > 이론, 기초' 카테고리의 다른 글
[Python] 파이썬 any(), all() (0) | 2023.03.09 |
---|---|
[Python] enumerate, map 값 확인하기 (0) | 2023.02.10 |
[Python] 한줄로 for+ if 문 사용하기 (0) | 2023.02.09 |
[Python] 코드 실행 시간 측정 (0) | 2022.10.07 |
[Python] 조합 (0) | 2022.10.06 |