서론
파이썬에서는 여러가지 data를 담을 수 있는 함수 들이 있습니다.
컬렉션 (Collection) 이란
여러(복수의) 자료들을 규칙있게 담아놓은 장소/자료구조 등을 의미
- 한번에 많은 복합 자료의 저장,이용이 가능함.
- 프로그래밍 언어 또는 환경 마다, 프로그램 작성 편의 측면에서, 데이터에 쉽게 접근하고, 쉽게 사용할 수 있는 다양한 실무적 도구들을 제공하고 있음
참조: Collection-정보통신기술용어해설
기본적으로 python에는 List, Tuple, Dictionary, Set 등이 있으며, 이 외에도 여러가지 컬렉션이 존재 합니다.
frozenset - immutable(수정불가) 특성을 가지고 있는 set
표준라이브러리 지원 컬렉션
오늘은 List, Tuple, Dictionary, Set의 차이점에 대해서 정리해 보려 합니다.
List, Tuple
공통점
차이점
- List는 mutable 객체이므로, 삽입, 수정, 삭제 등이
가능
하고, Tuple은 immutable 객체 이므로 삽입, 수정, 삭제등이 불가능 합니다.
- Tuple은 immutable이므로 Dictionary의 Key값 및 Set의 요소로 사용 될 수 있는 반면, List는 불가능 합니다.
- 깊은 복사(deep copy)시, List는 새로운 사본을 만드는 반면, Tuple은 기본적으로 새로운 사본을 만들지 않습니다. 다만 Tuple안에 mutable 객체가 존재시 새로운 사본을 만듭니다.
얕은 복사(shallow copy)와 깊은 복사(deep copy)
Dictionary, Set
공통점
- 순서가 없는 객체이므로 index로 접근 불가능
- mutable 객체이므로, 삽입 수정 삭제 등이
가능
하다.
- Key값(set일 경우 요소) 중복을 허용하지 않으며, key 값으로 immutable객체만 가능하다.
- 즉 tuple은 Dictionary의 Key값 및 set의 요소로 추가가 가능하지만은 List는 불가능함.
차이점
- Dictionary는 Key-Value 형태로 구성되어 있으나, Set은 요소로만 구성되어 있음.
- 끼워 맞추자면 Set은 Dictionary의 Value가 없는 형태
- set은 연산자를 이용해서 교집합, 합집합, 차집합을 할 수 있다.
Reference
02장 파이썬 프로그래밍의 기초, 자료형 - 점프 투 파이썬