list에서 del 사용
del은 인덱스를 사용해서 범위 내의 원소들을 삭제하는 함수이다. 리스트의 원소가 삭제해야할 인덱스 범위 안에 있는지 검사해야하므로 시간복잡도는 O(n)이다.
>>> a = [-1, 1, 66.25, 333, 333, 1234.5]
>>> del a[0]
>>> a
[1, 66.25, 333, 333, 1234.5]
>>> del a[2:4]
>>> a
[1, 66.25, 1234.5]
>>> del a[:]
>>> a
[]
변수를 del
>>> a = 1
>>> b = a
>>> del a
>>> a
Traceback (most recent call last):
File "<pyshell#75>", line 1, in <module>
a
NameError: name 'a' is not defined
>>> b
1
위의 코드는 a 변수를 선언하여 1을 저장한 객체를 참조하고 b는 a를 복사하여 똑같은 객체를 참조합니다.
여기서 del a를 실행한 뒤 a를 확인하면 a가 선언되지 않은 변수라고 NameError가 발생합니다. 또 b를 확인하면 정상적으로 1을 반환합니다. 이를 통해 알 수 있는 점은 del을 통해 선언된 변수가 객체를 참조하는 것을 삭제하지만 객체 자체를 삭제하지 않는다는 것을 알 수 있습니다.
참고
https://docs.python.org/3/tutorial/datastructures.html?highlight=del#the-del-statement
'개발 공부 > Python' 카테고리의 다른 글
pop(0)와 pop()의 차이 (0) | 2021.08.17 |
---|---|
len()의 시간 복잡도가 O(1)인 이유 (0) | 2021.08.17 |
Python은 변수를 어떻게 저장하는가? (0) | 2021.08.16 |