반응형
nums = [1,2,3,4,5]
for num in nums:
print(num)
# 결과
# 1
# 2
# 3
# 4
# 5
for문을 돌리면
이렇게 리스트의 요소가 차례대로 num에 할당이 된다.
그런데 이것도 사실 인덱스 기준이다. 그래서 값을 삭제하면서 for문을 돌리면
nums = [1,2,3,4,5]
for num in nums:
nums.remove(num)
print(num)
# 결과
# 1
# 3
# 5
이렇게 1, 3, 5만 출력된다.
nums[0]인 1을 삭제한 후 nums=[2, 3, 4, 5]가 되고
그 다음 요소는 nums[1]인 3이기 때문이다.
그래서 마지막에 print(nums)로 출력해보면
[2, 4]가 남아있는 결과를 볼 수 있다.
nums를 직접 돌리지 않고 nums의 복사본을 반복하면
nums = [1,2,3,4,5]
for num in nums[:]:
nums.remove(num)
print(num)
# 결과
# 1
# 2
# 3
# 4
# 5
이렇게 차례대로 모든 요소가 잘 들어간 것을 확인할 수 있다.
print(nums)를 해보면
[] 빈 리스트가 출력되는 것을 볼 수 있다.
반응형
'Python' 카테고리의 다른 글
파이썬 | Type Hints, 타입 지정하기 (0) | 2022.09.24 |
---|---|
파이썬 | max, sorted,...의 key사용 (0) | 2022.07.14 |
파이썬 오류 | "{" was not closed Pylance (0) | 2022.07.12 |
파이썬 | 모듈 임포트 하는법 (0) | 2022.07.08 |
파이썬 | print(i, end='') 개행 없이 한줄로 출력 (0) | 2022.07.07 |