Python 자료구조 기본 정리

Junyoung Lee·2021년 6월 10일
0

Python

목록 보기
5/6


Python 자료구조에 대해 기본적인 부분만 정리 해보려고 한다!


1) List

  • List는 값을 순차열 적으로 저장 할 수 있다
  • List안에는 어떤 자료형이던지 포함시킬 수 있다 (List안에 List를 넣을 수도 있음)
  • 선언 시 []로 감싸서 만들거나 list()로도 만들 수 있다

    a = [1, 2, 3]
    b = list(range(5)) # [0, 1, 2, 3, 4]

  • 값들의 순서가 존재하며 index라고 한다
  • 인덱싱과 슬라이싱이 가능하다

2) Tuple

  • Tuple은 기본적으로 List와 동일하지만 몇 가지 차이점이 있다
  • List는 선언 후에도 수정이 가능하지만 Tuple은 수정이 불가능하다
  • 선언 시 ()로 감싸서 만들거나 tuple()로도 가능하다

    a = (1, 2, 3)
    b = tuple(range(5))

  • 인덱싱이나 슬라이싱 하는 방법은 모두 List와 동일하다
  • 일반적으로 2개에서 5개 사이의 요소들을 저장할 때 사용됨
  • 특정 데이터를 ad hoc(즉석적으로)하게 표현하고 싶을 때 사용
  • List보다 차지하는 메모리 용량이 적다
  • 수정이 필요없고 간단한 형태의 데이터를 표현시에는 Tuple이 훨씬 더 효과적

3) Set

  • SetList와 마찬가지로 여러 다양한 타입의 요소들을 저장할 수 있다
  • 집합이다
  • Set는 요소들이 순서대로 저장되어 있지 않아서 for문에서 읽어 들일 때도 무작위 순서로 나오게 된다
  • 순서가 없기 때문에 인덱싱도 없음
  • 중복된 값 저장 불가 (새로 저장하려고 하는 요소와 동일한 값이 있으면 새로운 요소가 전 요소를 치환(replace)함
  • 선언시 {}으로 감싸서 만들거나 set()함수를 사용해 만들 수 있고 set()을 사용하게 된다면 Listparameter로 전달해야 한다

    a = {1, 2, 3, 3} -> # {1, 2, 3}
    b = set([1, 1, 2, 2]) -> # {1, 2}
    c = set(1, 2) -> # TypeError 발생

4) Dictionary

  • DictionaryKeyValue의 쌍으로 이루어져 있는 자료구조이다
  • 선언 시 {}로 선언 하는건 세트와 똑같지만 Key : Value로 값을 넣어야 한다

    a = { "name" : "kyle", "address" : "Gunpo"}

  • List로 되어있는 Tuple이나 List안에 Tuple이 있는 경우에는dict()로도 선언이 가능

    a = dict(([1, 2], [3, 4], [5, 6]))
    ->
    {1: 2, 3: 4, 5: 6}

  • 순서가 없어서 인덱싱을 사용할 수 없고 Key로 요소를 읽을 수 있다

    a["name"] -> # "kyle"

  • Key값은 중복이 불가하고 이미 존재하는 Key값을 추가하게 된다면 이미 존재하던 Key값의 요소를 치환한다
    a = { "name" : "kyle", "name" : "junyoung"}
    print(a)
    
    # {'name' : 'junyoung'}

Assignment

1) Set과 Dictionary의 차이

DictionaryKeyValue의 값으로 이루어져 있지만 Set는 값이 Key, Value쌍이 아니라 그냥 요소 하나로 기능을 하는 부분에서의 차이가 존재한다

2) List와 Tuple의 차이

  1. List는 선언 후에도 요소들을 추가 / 삭제 등 수정이 가능하지만 Tuple은 선언한 이후에는 요소를 수정할 수 없다
  2. List는 위와 같이 수정이 가능하게 되어있는 자료구조이기 때문에 Tuple보다 차지하는 메모리 용량이 더 크다
  3. List[]를 사용하지만 Tuple()을 사용한다!
profile
🎹재즈를 사랑하는 백엔드 개발자 이준영입니다🎷

0개의 댓글