Stack
a = [ 1, 2, 3, 4, 5]
a.append(10)
a.append(20)
a.pop() -> 20
a.pop() -> 10
# 글자 수 역순
word = input("input word")
word_list = list(word)
for i in range (len(word_list)) :
print(word_list.pop())
Queue
a = [1,2,3,4,5]
a.append(10)
a.append(20)
a.pop(0) -> 1
a.pop(0) -> 2
Tuple
- 값의 변경이 불가능한 리스트
- "[]" 가 아닌 "()"을 사용
t = (1,2,3)
print (t + t, t * 2) # (1,2,3,1,2,3) (1,2,3,1,2,3)
t[1] = 5 #오류가 니온다
사용이유
- 변경되지 않은 데이터의 저장 (학번, 이름, 우편번호)
- 함수의 반환 값등 사용자의 실숭 의한 에러를 사전에 방지
Set
s = set([1,2,3,1,2,3])
s = {1,2,3,1,2,3}
print(s) # {1,2,3}
s.add(1) # 1 추가
s.remove(1) # 1 삭제
# 집합 예제
s1 = {1,2,3}
s2 = {2,3,4}
# 합집합
s1.union(s2)
s1 | s2
# 교집합
s1. intersection(s2)
s1 & s2
# 차집합
s1 - s2
Dict
- 데이터 저장할 때 구분 지을 수 있는 값을 함께 저장
- key, value
student_info = { 20180101: 'kim' , 20120101: 'jo' }
Collections
- List, Tuple, Dict에 대한 자료구조 모듈
- 편의성 제공
Deque
- stack과 Queue를 지원하는 모듈
- List에 비해 효율적-> 빠른 자료 저장 방식
from collections import deque
deque_list = deque()
for i in range(5):
deque_list.append(i)
print(deque_list)
deque_list appendleft(10) # (10, 0,1, 2, 3, 4)
print(deque_list())
deque_list.rotate(1) -> 1칸이동
# deque([4, 10, 0, 1, 2, 3])
deque_list.append(100) -> 뒤에 추가
deque_list.appendleft(200) -> 앞에 추가
%timeit 함수 # 시간나옴
OrderedDict
- Dict와 달리 입력한 순서대로 dict를 반환
- 현재는 보장함