Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

배우고 느낀 것들

[구름] 4일차 본문

파이썬/강의

[구름] 4일차

낑깡H 2022. 11. 10. 16:11

자료구조

 

스택 : 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