배우고 느낀 것들
[구름] 4일차 본문
자료구조
스택 : FILO 의 구조 형태 "입구가 한 개"
기존의 List 형태를 통해 쉽게 구현 가능.
Push와 Pop의 시간복잡도는 O(1)
큐 : FIFO의 구조. "입구가 양 쪽에"
리스트로 할 경우 Pop은 어차피 맨 마지막이니까 똑같이 O(1).
다만 Insert의 경우 O(N)만큼 걸리게 됨 -> 새로운 구조 필요.
"Linked List" : 양쪽으로 자유로운 입출력 by Collection 라이브러리의 deque
from collections import deque
que = deque[3, 7, 8]
que.appendleft(10) #[10, 3, 7, 8]
Priority Queue
최소,최대값을 구하기 위한 이진 검색을 하기 위해서는 내부가 정렬되어야 함
-> sorted 하고 입력하게 되면 O(N logN) 만큼 걸림
-> sorted 대신 내부가 정렬된 리스트에 중간에 삽입 : O(N)
-> heapq 라이브러리의 heapq 사용!
: 리스트를 이진 트리 형식으로 사용하게 됨 -> O(log N)
Defaultdict
기본 dictionary는 키가 없으면 에러
값이 없는 경우에 대해 자동으로 값 출력 가능
characters = {}
for char i ntext:
count = characters.get(char, None)
if count is None:
characters[char] = 0
characters[char] += 1
from collections import defaultdict
text = "식품산업, MD/구매 직무에 관심이 있는 학생들께 본 강연을 추천 합니다."
characters = defaultdict(int)
for char in text:
characters[char] += 1
characters
Counters : 원소 갯수 세줌!
from collections import Counter
characters = Counter(char for char in text) #혹은 그냥 text
print(characters)
Dictionary처럼 생성, 관리 가능
c = Counter({"Korean" : 2, "English" : 3})
c.keys() # -> Dict_keys(['Korean', 'English'])
c.values() # -> Dict_values([2, 3])
Dict_values([2, 3]) # c["Korean"]
list(c.elements()) # ['Korean', 'Korean', 'English', 'English', 'English'] 모든 요소 반환
집합의 연산도 지원함.
Named Tuple
데이터만을 담기 위한 클래스
: 클래스 선언, getter 작성 필요
튜플에 이름 붙이기 가능
Dataclass
'파이썬 > 강의' 카테고리의 다른 글
[구름] 2일차 (0) | 2022.11.08 |
---|---|
[구름] 1일차 (0) | 2022.11.07 |
패스트캠퍼스 5주차 EDA (0) | 2022.09.23 |
패스트캠퍼스 4주차 요약 (0) | 2022.09.15 |
[언분프] 1주차 (0) | 2022.09.08 |
Comments