-
[Python] 기본 데이터 구조Programming/Python 2023. 3. 6. 20:07728x90
Stack
- LIFO(Last In First Out) : 나중에 넣은 데이터를 먼저 반환하도록 설계된 메모리 구조
- list를 사용하여 스택 구조 구현 가능
push : appen()
pop : pop()
a = [1, 2, 3, 4, 5] a.append(10) #[1, 2, 3, 4, 5, 10] a.pop() #[1, 2, 3, 4, 5]
Queue
- FIFO(First In First Out) : 먼저 넣은 데이터를 먼저 반환하도록 설계된 메모리 구조
- list를 사용하여 큐 구조 구현 가능
put : append()
get : pop(0)
a = [1, 2, 3, 4, 5] a.append(10) # [1, 2, 3, 4, 5] a.pop(0) # 1
Deque
- stack 과 queue를 지원하는 모듈
- list에 비해 효율적인 (빠른) 자료 저장 방식
from collections import deque deque_list = deque() for i in range(5): deque_list.append(i) #deque([0, 1, 2, 3, 4])
deque_list.appendleft(10) print(deque_list) #deque([10, 0, 1, 2, 3, 4]) deque_list.popleft() print(deque_list) #deque([0, 1, 2, 3, 4]) deque_list.pop() print(deque_list) #deque([0, 1, 2, 3])
Tuple
- 값의 변경이 불가능한 리스트
- 선언 : ()
d = ( 1, 2 ,3)
namedtuple
- tuple형태로 data구조체를 저장하는 방법
- 저장되는 data의 variable을 사전에 지정해서 저장함
List
- 값의 변경이 가능한 리스트
- 선언 : [ ]
a = [1, 2, 3, 4, 5]
Set
- 값을 순서없이 저장, 중복 불허하는 자료형
- set객체 선언을 이용하여 객체 생성
s1 = set([1,2,3,4,5])
-합집합
s1 = set([1,2,3,4,5]) s2 = set([1,2,6,7,8]) s1.union(s2) #{1, 2, 3, 4, 5, 6, 7, 8}
-교집합
s1 = set([1,2,3,4,5]) s2 = set([1,2,6,7,8]) s1.intersection(s2) #{1, 2}
-차집합
s1 = set([1,2,3,4,5]) s2 = set([1,2,6,7,8]) s1.difference(s2) #{3,4,5}
Dictionary
- Java의 Hash Table
- (Key, Value) 쌍으로 저장
- {Key1:Value1, Key2:Value2 } 형태
hashTable = { 'a':5, 'z':7, 'e' : 1}
-Dict 데이터 출력
hashTable.items() #dict_items([('a', 5), ('z', 7), ('e', 1)])
-Dict 키 값만 출력
hashTable.keys() # dict_keys(['a', 'z', 'e'])
-Dict 데이터만 출력
hashTable.values() #dict_values([5, 7, 1])
-Dict 추가
hashTable['d'] = 9
OrderedDic
- 데이터를 입력한 순서대로 dict 반환
Defaultdict
- Dict type의 값에 기본 값을 지정, 신규 값 생성 시 사용하느 방법
Counter
-dequnce type의 data element들의 갯수를 dict형태로 반환
728x90'Programming > Python' 카테고리의 다른 글
[Python] 리스트 컴프리헨션 List Comprehension (0) 2023.06.03 [python] poetry install , 설정 (0) 2023.04.28 [Python] 파이썬 순열과 조합 (0) 2022.05.17 [Python] 파이썬 자주 사용되는 라이브러리 (0) 2022.05.17 [Python] 파이썬 기초 3 (반복문) (0) 2022.05.17