Search
Duplicate

파이썬 기본 데이터 구조

생성일
2023/02/16 14:39
태그

스택 (STACK)

나중에 넣은 데이터를 먼저 반환하도록 설계된 메모리 구조
LIFO
데이터의 입력을 Push, 출력을 Pop

Stack with list object

리스트를 사용하여 스택 구조를 구현 가능
push ⇒ append()
pop ⇒ pop()
예제)

큐 (QUEUE)

먼저 넣은 데이터를 먼저 반환하도록 설계된 메모리 구조
FIFO
Stack 과 반대되는 개념

Queue with list object

파이썬은 리스트를 사용하여 큐 구조를 활용
put ⇒ append()
get ⇒ pop(0)

튜플 (Tuple)

값의 변경이 불가능한 리스트
선언시 “[]” 가 아닌 “()” 를 사용
리스트의 연산, 인덱싱, 슬라이싱 등을 동일하게 사용

집합 (Set)

값을 순서없이 저장, 중복 불허하는 자료형
set 객체 선언을 이용하여 객체 생성

사전 (Dictionary, Dict)

데이터를 저장할 때는 구분 지을 수 있는 값을 함께 저장
주민등록번호, 제품 모델 번호
구분을 위한 데이터 고유값을 Identifier 또는 Key 라고 한다
Key 값을 활용하여, 데이터 값(Value) 를 관리한다
Key와 Value 을 매칭하여, Key로 Value를 검색
다른 언어에서는 Hash Table 이라는 용어를 사용
{Key1 : Value1, Key2 : Value2, Key3 : Value3} 형태

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
Python
복사

deque

rotate, reverse 등 Linked List 의 특성을 지원함
기존 list 형태의 함수를 모두 지원한다
duque 는 기존 list보다 효율적인 자료구조를 제공
효율적 메모리 구조로 처리 속도 향상

OrderedDict

Dict 와 달리, 데이터를 입력한 순서대로 dict를 반환함
그러나 dict 도 python 3.6 부터 입력한 순서를 보장하여 출력함

DefaultDict

Dict type의 값에 기본 값을 지정, 신규값 생성시 사용하는 방법
초기값을 연결해주지 않아도, 초기값을 정해준다
하나의 지문에 각 단어들이 몇 개나 있는지 세고 싶을 경우
Text_mining 접근법 - Vector Space Model

Counter

Sequence type의 data element 들의 갯수를 dict 형태로 변환
Set의 연산들을 지원한다 (Set의 확장형과 비슷)
Namedtuple
Tuple 형태로 Data 구조체를 저장하는 방법
저장되는 data의 variable을 사전에 지정해서 저장함