스택 (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 Listd 의 특성을 지원함
◦
기존 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을 사전에 지정해서 저장함