Boostcamp AI Tech

[Boostcamp Day-5] Python - Data Structure

ju_young 2021. 8. 6. 11:44
728x90

스택

나중에 넣은 데이터를 먼저 반환하도록 설계된 메모리 구조이다. LIFO(Last In First Out)이라고 표현하기도 한다. 예를 들어서 책을 쌓았을때 위에 올려져있는 책을 가져오는 것이랑 비슷한 구조라고 생각하면 된다.

먼저 넣은 데이터를 먼저 반환하도록 설계된 메모리 구조이다. FIFO(First In First Out)이라고 표현하기도 한다. 예를 들어 버스 대기 줄에서 먼저 서있었던 사람이 먼저 버스를 타는 것과 비슷한 구조라고 생각하면 된다.

tuple

값의 변경이 불가능한 리스트이다. 선언시 ()를 사용한다. 연산, 인덱싱, 슬라이싱 등을 동일하게 사용할 수 있다. 튜플은 프로그램을 작동하는 동안 변경되지 않는 데이터를 저장할 때나 사용자의 실수에 의한 에러를 방지하기 위해 사용한다.

set

집합이라 부르고 값을 순서없이 저장하며 중복을 불허하는 자료형이다. set() 객체를 선언하여 생성한다.

dict

데이터를 저장 할 때 구분 지을 수 있는 값을 함께 저장한다. Key 값을 활용하여 value 값을 관리한다.

collections

List, Tuple, Dict 에 대한 python built-in 확장 자료 구조(모듈)이며 아래와 같은 모듈이 존재한다.

from collections import deque
from collections import Counter
from collections import OrderedDict
from collections import defaultdict
from collections import namedtuple

deque

Stack과 Queue를 지원하는 모듈이다. 즉, Stack과 Queue를 합친 자료형으로 만들어준다고 생각하면 된다.

a = deque([])

OrderedDict

데이터를 입력한 순서대로 dict를 반환하는 모듈이지만 python 3.6부터 입력한 순서를 보장하여 출력하기 때문에 사실상 쓰지 않아도 된다고 한다.

a = OrderdDict()

defaultdict

dict type의 값에 기본 값을 지정해주고 키 값이 없다면 만들어준다.

a = defaultdict()

Counter

Sequence type의 data element들의 갯수를 dict 형태로 반환해준다.

c = Counter('gallagad')

namedtuple

Tuple 형태로 Data 구조체를 저장하는 방법이다. 저장되는 data의 variable을 사전에 지정해서 저장한다.

point = namedtuple('Point', ['x', 'y'])
p = Point(11, y=22)
print(p[0] + p[1])
x, y = p
print(point(x=11, y=22))
728x90