이 글에선 python에서 주로 사용되는 자료구조인 List, Tuple, Set, Dictionary에 대한 기본 개념과, 장단점과 time complexity에 입각해 어느 상황에 사용하면 좋은지를 알아본다.
List는 python에서 가장 일반적으로 사용되는 자료구조이며, Dynamic Array 형태로 구현되어 있다.
l = [1,2,3]
전체적으로 위와 같이 method의 time complexity를 띈다. 필요할 때 참고하자.
요소가 중간에 추가 및 삭제가 자주 되지 않으며, 순서가 중요한 데이터의 경우! list를 사용하는것이 긍정적이다.
Tuple은 list와 아주 비슷하며, 다만 immutable 하다.
t = (1, 2, 3)
앞서 나온 list의 method중 mutable하지 않은 method는 모두 사용 가능하며, time complexity 또한 동일하다.
보통 여러개의 값을 한번에 return 해 줄 때 그 형식으로 많이 이용한다.
여러 distinct한 데이터를 담는 unordered 순열자료구조이다.
s = set{1,2,3}
순서가 상관 없기에 O(1)인 method들이 list와 tuple에 비해 더 많다.
a = fronzenset([])
immutable한 set을 frozenset method를 통해 만들 수 있다.
1차원적으로 중복된 값을 처리하기에 알맞다. 또, 자료구조의 lookup이 되게 빠르므로 검색이 자주 일어나는 경우에 사용하면 좋다.
unorder하게 mutable한 item을 저장하는 자료구조이며 key : value pair로 item을 저장한다.
d = {'a': 1, 'b': 3, 'c': 5}
key와 value mapping을 지속적으로 유지해야 할 때, 즉 해당 key에 대한 value를 각각 관리해야하는 경우 유용하다.
위 내용을 요약해서 하나의 표로 나타내면 다음과 같다.