데이터구조

suhan cho·2022년 12월 29일
0

Stack

  • Last in First out
a = [ 1, 2, 3, 4, 5]
a.append(10)
a.append(20)
a.pop() -> 20
a.pop() -> 10
  • Example
# 글자 수 역순
word = input("input word")
word_list = list(word)
for i in range (len(word_list)) :
	print(word_list.pop())

Queue

  • First in First out
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())

  • Linked 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를 반환
  • 현재는 보장함
profile
안녕하세요

0개의 댓글