TIL 14 | List vs Tuple, Set vs Dictionary

임종성·2021년 7월 12일
0

Python

목록 보기
3/7
post-thumbnail

Python은 List, Tuple, Dictionary, Set 이라는 각기 다른 자료구조를 제공한다. 기본적인 특징을 학습하고 Set과 Dictionary, 그리고 List와 Tupe의 차이에 대해 이해해보자.

List and Tuple

Python에서는 List(리스트)를 통해 여러 개의 데이터를 한 곳에 저장할 수 있다.

List[](대괄호)로 감싸여져 있으며, 데이터 요소와 요소는 쉼표로 구분한다.

List는 여러 string 이외에도 숫자, boolean 값 등 모든 type의 값을 저장 할 수 있으며 서로 다른 type의 값들을 저장하는것도 가능하다.

sandwich = ["peanut butter", "jelly", "bread"].

Tuple은 기본적으로 list와 비슷하게 요소들을 저장할 때 쓰이며, ()(일반괄호)로 감싸여 있다.

my_tuple = (1, 2, 3)

listtuple은 공통적으로 여러 데이터를 담을 수 있는 컨테이너형 변수이고, Indexing을 통해 특정 요소에 접근할 수 있으며 그렇기에 order가 존재해 iterable 하다. 그렇다면 두 Data Structure는 어떤 차이가 있을까?

가장 중요한 차이는 바로 Mutable 여부다. listMuatable 하지만 tupleImmutable 하다. 그렇기에 불변객체의 특성상 tuplelist에 비해

  • 제한적인 만큼 더 적은 메모리 공간을 사용하고,
  • 불변성으로 인해 Value가 의도치 않게 변경될 염려가 없어 안정적이며,
  • Dictionarykey로 사용될 수 있고,
  • Iteration시 더 빠른 속도로 수행이 가능하다.

따라서 수정이 필요없고 간단한 형태의 데이터를 표현할때에는 list보다 tuple을 사용하는 것이 더 효과적이다.

Set and Dictionary

Setlist와 마찬가지로 다양한 타입의 요소를 저장할 수 있고, {}(중괄호)로 감싸여 있다.

set1 = {1, 2, 3}

setlist와 다르게 가지고 있는 특징은

  • 요소들이 iterable 하지 않아 for문을 읽을 시 무작위로 나오고,
  • iterable 하지 않으므로 order가 없어 indexing이 불가능하며
  • 중복된 element가 set에 존재할 수 없다.

Dic은 기본적으로 set과 유사하게 {}(중괄호)를 사용하며 iterable하지 않고, 중복된 key가 존재하지 않는다.

my_dic = { "key1" : "value1", "key2" : "value2"}

다만 set, list, tuple이 모두 하나의 value를 요소로 가지는 것과 달리 Dickeyvalue의 쌍으로 이루어져 있으며,value에 해당하는 고유한 key를 지정해 원하는 값에 접근할 수 있다.

setdic모두 중복된 값이 존재하지 않고, list와 같이 Mutable하다. setdic의 차이는 바로

  • setkey값만 존재하지만 dickey, value 값이 존재한다는 것,
  • dickey값은 immutable 형식이어야 하고 valuemutable하다는 것,

따라서 Immutable 형식인 tupledickey 값으로 활용이 가능하다.

이러한 특징들로 인해 데이터 간의 대응관계(Key & Value)를 잘 나타내고 싶은 경우 dic을 사용하고 단순 중복값을 없애기 위함이나 수학적 처리를 위해서는 set을 이용한다.

profile
어디를 가든 마음을 다해 가자

0개의 댓글