삭제 - 인덱스로 삭제 : del a[1] - 값으로 삭제 : a.remove(3) - pop(삭제하고 값을 반환) : a.pop(3)
리스트의 특징
연속된 공간을 사용하는 배열과 다양한 타입을 연결하는 연결 리스트의 장점을 모두 가짐 - cpython/Include/cpython/listobject.h - PyObject **ob_item; 이 리스트의 값 - Python Object의 주소를 연속된 공간(배열)에 저장 - 따라서, 다양한 타입을 동시에 리스트에 삽입 가능
그러나 Amortized Analysis에 따라 O(1)의 시간 복잡도를 가짐 (혹시 동적 배열에서 증명한 방법과 차이가 있을지?)
딕셔너리에 대한 많은 개선이 진행됨 - Python 3.7+ : 딕셔너리 입력 순서 유지 - Python 3.6+ : 딕셔너리 메모리 사용량 20% 감소
딕셔너리를 효율적으로 생성하기 위한 추가모듈 지원 - collections.OrderedDict() : 항상 입력 순서가 유지 - collections.defaultdict() : 항상 디폴트 값을 생성하여 키 오류 방지 - collections.Counter() : 요소 값이 key, 개수가 value
딕셔너리의 활용 방법
선언 - a = dict() - a = {} - a = {1}로 선언할 경우, set으로 처리됨 (key 유무에 따라 나뉨)