Stack
Last In First Out(LIFO) 구조로써, 나중에 넣은 데이터를 먼저 반환하도록 설계된 메모리 구조
pop() : 리스트의 맨 끝에 있는 데이터를 제거함과 동시에 그 값을 반환
append() : 리스트에 원소 추가
Stack을 활용한 입력된 글자의 역순으로 출력
word = input("Input a word : ")
word_list = list(word)
for _ in range(len(word_list)):
print(word_list.pop())
print(word_list)
Queue
a = [1,2,3,4,5]
a.append(10)
a.append(20)
a.pop(0) # 1을 출력
a.pop(0) # 2를 출력
Tuple
Set
s = set([2,3])
s.add(1) # s = {1,2,3} 한 원소 1 추가
s.remove(1) # s = {2,3} 1 삭제
s.update([1,4,5,6,7]) # s = {1,2,3,4,5,6,7} [1,4,5,6,7] 추가
s.discard(3) # 3 삭제
s.claer() # 모든 원소 삭제
# 집합연산
s1 = set([1,2,3,4,5])
s2 = set([3,4,5,6,7])
## 합집합
s1. union(s2) # {1,2,3,4,5,6,7}
s1 | s2
## 교집합
s1.intersection(s2) # {3,4,5}
s1 & s2
## 차집합
s1.difference(s2) # {1,2}
s1 - s2
Dictionary
country_code = {"America" : 1, "Korea" : 82, "China" : 86, "Japan" : 81} # Dict
country_code.items() # Data 출력
country_code.keys() # Key 출력
country_code["German"] = 49 # Dict 추가
country_code.values() # Value 출력
# Dict unpacking
for k,v in country_code.items():
print("Key : " , k)
print("Value : ", v)
# Key 또는 Value에 특정값 포함 여부
"Korea" in country_code.keys()
82 in country_code.values()
Collections
List, Tuple, Dict에 대한 Python Built-in 확장 자료 구조로써, 편의성과 실행 효율을 제공
depue
from collections import deque
deque_list = deque() # deque 생성
for i in range(5):
deque_list.append(i) # deque에 0부터 4까지의 원소 추가
deque_list.appendleft(10) # deque의 가장 왼쪽에 10 추가
deque_list # deque([10,0,1,2,3,4])
deque_list.rotate(1) # 한 칸씩 옆으로 이동
deque_list # deque([4,10,0,1,2,3])
deque.extend([5,6,7]) # 원소들을 차례로 뒤에 추가
deque_list # deque([4,10,0,1,2,3,5,6,7])
deque.extendleft([5,6,7]) # 원소들을 차례로 앞에 추가
deque_list # deque([7,6,5,4,10,0,1,2,3,5,6,7])
%timeit general_list() # 평균적인 실행 속도를 나타내는 모듈
OrderedDict
Defaultdict
from collections import defaultdict
d = defaultdict(object) # default dictionary 생성
d = defaultdict(lambda: 0) # default 값을 0으로 설정
print(d["first"])
Counter
from collections import Counter
c = Counter()
c = Counter('gallahad')
print(c) # Counter({'a': 3, 'l': 2, 'g': 1, 'd': 1, 'h': 1})
print(list.c.elements()) # 결과값을 list 형태로 반환
c = Counter(a=4,b=2,c=0,d=-2)
d = Counter(a=1,b=2,c=3,d=4)
c.subtract(d) # 두 개의 Counter에서 element 값 빼기
print(c) # Counter({'a': 3, 'b': 0, 'c': -3, 'd': -6})
# set 연산 지원
print(c+d)
print(c&d)
print(c|d)
Namedtuple