Day_2 01. Python Data Structure
작성일
Python Data Structure
1. 파이썬 기본 데이터 구조
- 스택과 큐(stack & queue with list)
- 튜플과 집합(tuple & set)
- 사전(dictionary)
- Collection 모듈
1.1 스택 (Stack)
- 나중에 넣은 데이터를 먼저 반환하도록 설계된 메모리 구조
- Last In First Out (LIFO)
- Data의 입력을 Push, 출력을 Pop이라고 함
- 리스트를 사용하여 스택 구조를 구현 가능
- push를 append(), pop을 pop()를 사용
word = input("Input a word : ")
word_list = list(word)
for _ in range(len(word_list)):
print(word_list.pop())
print(word_list)
Input a word : price
e
['p', 'r', 'i', 'c']
c
['p', 'r', 'i']
i
['p', 'r']
r
['p']
p
[]
1.2 큐 (Queue)
- 먼저 넣은 데이터를 먼저 반환하도록 설계된 메모리 구조
- First In First Out (FIFO)
- Stack과 반대되는 개념
- 파이썬은 리스트를 사용하여 큐 구조를 활용
- put를 append(), get을 pop(0)를 사용
1.3 튜플 (tuple)
- 값의 변경이 불가능한 리스트
- 선언시 “[]”가 아닌 “()”를 사용
- 리스트의 연산, 인덱싱, 슬라이싱 등을 동일하게 사용
-
사실상 리스트와 같다고 보면 됨
- 왜 쓸까?
- 프로그램을 작동하는 동안 변경되지 않는 데이터의 저장
- ex) 학번, 이름, 우편번호 등등
- 함수의 반환 값등 사용자의 실수에 의한 에러르 사전에 방지
- 프로그램을 작동하는 동안 변경되지 않는 데이터의 저장
1.4 집합 (set)
- 값을 순서없이 저장, 중복 불허하는 자료형
- set 객체 선언을 이용하여 객체 생성
- set 함수
- add()
- remove()
- update()
- discard()
- clear()
- 수학에서 활용하는 다양한 집합연산 가능
-
union or - intersection or &
- difference or -
-
1.5 사전 (dict)
- 데이터를 저장 할 때는 구분 지을 수 있는 값을 함께 저장
- 구분을 위한 데이터 고유 값을 Identifier 또는 Key 라고함
- Key 값을 활용하여, 데이터 값(Value)를 관리함
- key와 value를 매칭하여 key로 value를 검색
- 다른 언어에서는 Hash Table 이라느 ㄴ용어를 사용
- {Key1: Value1, Key2: Value2, Key3: Value3, …} 형태
1.6 collections 모듈
- List, Tuple, Dict에 대한 Python Built-in 확장 자료 구조 (모듈)
- 편의성, 실행 효율 등을 사용자에게 제공함
1.6.1 deque
- Stack과 Queue를 지원하는 모듈
- List에 비해 효율적인 = 빠른 자료 저장 방식을 지원함
- rotate, reverse등 Linked List의 특성을 지원함
- 기존 list 형태의 함수를 모두 지원함
- deque 는 기존 list 보다 효율적인 자료구조를 제공
- 효율적 메모리 구조로 처리 속도 향상
1.6.2 OrderedDIct
- Dict와 달리, 데이터를 입렬한 순서대로 dict를 반환함
- 그러나 dict도 python3.6부터 입력한 순서를 보장하여 출력함
- 의미가 크게 없음
1.6.3 defaultdict
- Dict type의 값에 기본 값을 지정, 신규값 생성시 사용하는 방법
- 하나의 지문에 각 단어들이 몇 개나 있는지 세고 싶을경우?
d = defaultdict(lambda : 0)
d['first']
0
1.6.4 Counter
- Sequence type의 data element들의 갯수를 dict 형태로 반환
- Dict type, keyword parameter 등도 모두 처리 가능
- Set의 연산들을 지원함
+
: 더하기&
: 교집합|
:
1.6.5 Namedtuple
- Tuple 형태로 Data 구조체를 저장하는 방법
- 저장되는 data의 variable을 사전에 지정해서 저장함
댓글남기기