Python 자료구조 알아보기

목차

  1. 스택과 큐(Stack & Queue)
  2. 튜플과 집합(Tuple & Set)
  3. 사전(dictionary)
  4. Collection 모듈

day3


기본 자료구조

Stack(스택)

  • 먼저 들어간 데이터가 나중에 나오는 구조.
  • 선입 후출(LIFO) 형식의 자료구조라고 불림 Last In First Out.
  • 계층형식으로 자료를 처리해야하는 과정에서 주로 사용됨. 앞의 데이터가 뒤에 데이터에 영향을 미치거나 앞의 데이터와 뒤의 데이터가 종속적인 관계를 가질 경우에 사용됨.
  • EX)

Queue(큐)

  • 먼저 들어간 데이터를 먼저 나오는 구조
  • 선입 선출(FIFO) 형식. First In Last Out.
  • 시간의 순서나 차례대로 처리해야 하는 경우에 사용됨.
  • EX)
    1. 프린터 출력을 할때, 요청이 들어온 순서대로 출력을 하는경우.
    2. 놀이공원 티켓팅 할때 순서대로 구매하는 경우.

Tuple(튜플)

  • 선언 후에 값(Value)의 변경이 불가능한 자료구조
  • 리스트 연산, 인덱싱, 슬라이싱 등은 가능함.
  • () 갈호를 사용해 선언.

Set(집합)

  • 사용시 중복을 없애준다.
  • 값을 순서 없이 저장하고 있다.
  • .add(), remove(), update(), discard(), .union(), intersection(), difference() Method를 가지고 있다.

Dict(사전)

  • key 와 value의 쌍으로 이뤄진 자료구조.
  • {“key” : value} 구조, 다른 언어에서 Hash Table이라고도 함.
  • dict는 .items(), .keys(), .values() Method를 가지고 있음

Collections

  • 파이썬 Built-in 확장 자료 구조(모듈)
  • List, Tuple, Dict의 확장판이라고 보면됨, 마치 C++ STL 느낌?

deque

  • List에 비해 효율적인 저장방식을 지원함. 메모리구조가 효율적이라서 속도가 list보다 빠름
  • rotate, reverse등 Linked List 특성을 지원함
  • 기존 list 함수들을 모두 지원.