Python은 List, Tuple, Dictionary, Set 이라는 각기 다른 자료구조를 제공한다. 기본적인 특징을 학습하고 Set과 Dictionary, 그리고 List와 Tupe의 차이에 대해 이해해보자.
Python에서는 List
(리스트)를 통해 여러 개의 데이터를 한 곳에 저장할 수 있다.
List
는 []
(대괄호)로 감싸여져 있으며, 데이터 요소와 요소는 쉼표로 구분한다.
List
는 여러 string 이외에도 숫자, boolean 값 등 모든 type의 값을 저장 할 수 있으며 서로 다른 type의 값들을 저장하는것도 가능하다.
sandwich = ["peanut butter", "jelly", "bread"].
Tuple
은 기본적으로 list
와 비슷하게 요소들을 저장할 때 쓰이며, ()
(일반괄호)로 감싸여 있다.
my_tuple = (1, 2, 3)
list
와 tuple
은 공통적으로 여러 데이터를 담을 수 있는 컨테이너형 변수이고, Indexing을 통해 특정 요소에 접근할 수 있으며 그렇기에 order가 존재해 iterable 하다. 그렇다면 두 Data Structure는 어떤 차이가 있을까?
가장 중요한 차이는 바로 Mutable 여부다. list
는 Muatable 하지만 tuple
은 Immutable 하다. 그렇기에 불변객체의 특성상 tuple
은 list
에 비해
Dictionary
의 key
로 사용될 수 있고, 따라서 수정이 필요없고 간단한 형태의 데이터를 표현할때에는 list
보다 tuple
을 사용하는 것이 더 효과적이다.
Set
은 list
와 마찬가지로 다양한 타입의 요소를 저장할 수 있고, {}
(중괄호)로 감싸여 있다.
set1 = {1, 2, 3}
set
이 list
와 다르게 가지고 있는 특징은
for
문을 읽을 시 무작위로 나오고,set
에 존재할 수 없다.Dic
은 기본적으로 set
과 유사하게 {}
(중괄호)를 사용하며 iterable하지 않고, 중복된 key
가 존재하지 않는다.
my_dic = { "key1" : "value1", "key2" : "value2"}
다만 set
, list
, tuple
이 모두 하나의 value를 요소로 가지는 것과 달리 Dic
은 key
와 value
의 쌍으로 이루어져 있으며,value
에 해당하는 고유한 key
를 지정해 원하는 값에 접근할 수 있다.
set
과 dic
모두 중복된 값이 존재하지 않고, list
와 같이 Mutable하다. set
과 dic
의 차이는 바로
set
은 key
값만 존재하지만 dic
은 key
, value
값이 존재한다는 것,dic
의 key
값은 immutable
형식이어야 하고 value
는 mutable
하다는 것,따라서 Immutable 형식인 tuple
은 dic
의 key
값으로 활용이 가능하다.
이러한 특징들로 인해 데이터 간의 대응관계(Key & Value)를 잘 나타내고 싶은 경우 dic
을 사용하고 단순 중복값을 없애기 위함이나 수학적 처리를 위해서는 set
을 이용한다.