파이썬의 자료구조는 데이터를 효율적으로 저장하고 관리하기 위한 방법으로 각각의 자료구조는 특정한 목적과 용도에 맞게 설계되어 있고, 데이터를 추가, 삭제, 검색, 정렬 등 작업을 최적화하는데 도움을 줍니다. 파이썬에 제공되는 주요 자료구조는 다음과 같습니다.
1. 리스트(List)
파이썬의 리스트는 순서의 있는 가변적(mutable) 자료구조로, 다양한 데이터 타입을 포함시킬 수 있습니다.
lister = [3,2, 5, 'talk', 6.2]; # 리스트를 생성
lister.append(10) # 리스트에 요소를 추가
lister.remove(2) # 리스트의 요소를 삭제
print(lister); # [3,5, 'talk', 6.2,10]
print(lister[1]) # 두 번째 요소 접근
2. 리스트 스택 사용
스택은 LIFO(LastIn, First Out)원 칙을 따르며 리스트의 append()와 pop() 메서드를 사용해 쉽게 구현할 수 있습니다.
stack = ["123", "12312", "123213"];
stack.append(1); # push
stack.append(2);
last_item = stack.pop() # pop 2 delete
print(stack); # ['123', '12312', '123213', 1]
3.리스트를 큐로 사용하기
큐는 FIFO(First In, First Out) 원칙을 따르며 ,리스트의 append()와 pop(0) 메서드를 사용해 구현할 수 있으나 비효율 적이라 collections.deque를 사용하는 게 좋습니다.
from collections import deque
queue = deque()
queue.append(1) # 요소 add
queue.append(2)
first_item = queue.popleft() # 첫 번째 요소 제거 1 제거
print(queue) # deque([2])
4.리스트 컴프리핸션
리스트 컴프리핸션을 사용해 간결하게 리스트를 생성할 수 있습니다.
squares = [x**2 for x in range(20)] # 0부터 20까지의 제곱 리스트
print(squares)
# [0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361]
중첩된 리스트 컴프리헨션을 사용해 2차원 리스트를 생성할 수 있습니다.
# 중첩된 리스트 컴프리헨션
matrix = [[j for j in range(5)] for i in range(3)];
print(matrix)
# [[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4]]
5.del 문
del 문을 사용해 리스트의 요소를 삭제 또는 변수를 제거할 수 있습니다.
my_list = [1,2,3,4];
del my_list[1] # index 1 is delete
print(my_list); # [1, 3, 4]
6. 튜플과 시퀀스
튜플은 불변(immutable)의 시퀀스로, 리스트와 유사하나 수정이 불가능합니다.
my_tuple = (1,2,3);
my_tuple[2] = 4 # error
7. 집합(Set)
집합은 중복이 없는 가변적 자료구조며, 수학적 집합 연산을 수행할 수 있습니다.
my_set = {1,2,3,3,5} # 1,2,3,3,5 => 1,2,3,4,5
my_set.add(4)
print(my_set)
8.딕셔너리 (Dictionary)
딕셔너리는 키-값 쌍으로 데이터를 저장하는 가변적 자료구조로 딕셔너리안에 키가 중복되지 않은 제약 조건을 가진 키:값 쌍의 집합입니다.
my_diction = {'name': 'James', 'age': 34, 'job': 'backend'}
my_diction['backend'] = "fullStack" # 값 Edit
print(my_diction) # {'name': 'James', 'age': 34, 'job': 'backend', 'backend': 'fullStack'}
9. 루프 테크닉
루프 테크닉은 다양한 루프를 사용할 수 있고 가장 일반적으로 for 루프와 while 루프를 사용합니다.
my_list = [1,3,4,5,6,7]
for item in my_list:
print(item) # list all print
i = 0
while i < len(my_list):
print(my_list[i])
i += 2 # += 1 = 1 3 4 5 6 7 2번 반복 += 2 = 1 3 4 5 6 7 반복하다 1 4 6까지만 출력
10. 시퀀스와 다른 형들
- 시퀀스: 리스트, 튜플, 문자열 등 순서가 있는 자료구조, 인덱스를 통해 접근 가능
- 비시퀀스: 집합(set)과 딕셔너리(dictionary)는 순서가 없으며, 키를 통해 접근
GitHub - Koras02/python-blog
Contribute to Koras02/python-blog development by creating an account on GitHub.
github.com
'Back-End > Python' 카테고리의 다른 글
[Python] 6. 파일 입출력 (0) | 2025.02.27 |
---|---|
[Python] 5. 모듈과 패키지 (0) | 2025.02.24 |
[Python] 4.함수(Function) (0) | 2025.02.22 |
[Python] 2. Python의 제어 흐름 도구(for, range(), if, pass, match, else, break continue) (0) | 2025.02.12 |
[Python] 1.파이썬의 탄생 - 객체지향 프로그래밍 Python (0) | 2025.02.11 |