반응형
Chapter 01. 자료구조
자료구조란? 파이썬 자료구조 완전 정리
주요 개념 요약
- 자료구조(Data Structure): 데이터를 효율적으로 저장·관리·활용하기 위한 구조
- 컨테이너 자료형(Container Type): 여러 데이터를 묶어서 저장할 수 있는 자료형
- 파이썬의 대표적인 컨테이너 자료형
- 리스트(List)
- 튜플(Tuple)
- 딕셔너리(Dict)
- 셋트(Set)
- 각각의 자료구조는 저장 방식, 변경 가능 여부, 검색 방식 등에서 차이를 보이며 목적에 따라 선택해야 함
1. 자료구조란?
PDF 2페이지에서 설명하듯이 자료구조는 데이터를 묶어서 관리하기 위한 구조를 의미한다.
단일 변수 하나에 데이터를 하나씩 저장하면 다음과 같은 비효율이 발생한다:
student1 = '홍길동'
student2 = '박찬호'
student3 = '이용규'
...
이런 방식에서는
- 변수 관리가 어렵고
- 반복 처리(반복문 활용)가 불가능하며
- 데이터 수정 시 관리 비용이 크다.
그래서 여러 데이터를 하나로 묶어 관리하기 위해 컨테이너 자료형이 필요하다.
이 컨테이너가 바로 ‘자료구조’이며, 파이썬에서는 다음과 같은 대표적인 4가지가 존재한다.
2. 파이썬의 다양한 자료구조
1) 리스트(List)
- 가장 많이 사용되는 자료구조
- 수정 가능(mutable)
- 인덱싱·슬라이싱 지원
- 데이터 순서 유지
- 예시:
students = ['홍길동', '박찬호', '이용규']
2) 튜플(Tuple)
- 리스트와 비슷하지만
- 수정 불가(immutable)
- 데이터 보호가 필요한 경우 사용
- 예시:
point = (10, 20)
3) 딕셔너리(Dictionary)
- 키(key)-값(value) 형태
- 순차적 구조가 아닌 매핑 구조
- 매우 빠른 검색 성능
- 예시:
student = {'name': '홍길동', 'age': 20}
4) 셋트(Set)
- 수학적 집합 개념
- 중복 제거, 정렬되지 않음
- 교집합/합집합 등 집합 연산 가능
- 예시:
tags = {'python', 'data', 'python'} # → {'python', 'data'}
* 이 글은 제로베이스 데이터사이언스 파트타임 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.
💡 생각 정리
자료구조는 단순히 데이터를 담는 그릇이 아니라, 어떤 방식으로 관리하고 활용하는지가 효율성에 결정적인 영향을 미친다는 것을 다시 느꼈다. 특히 리스트·딕셔너리처럼 자주 사용되는 구조도 내부 동작 방식이 다르기 때문에 적절한 선택이 중요하다. 데이터를 잘 다루려면 적합한 자료구조를 판단하는 능력이 필수이며, 이는 알고리즘 효율성에도 직결된다. 앞으로 프로젝트나 데이터 처리 작업에서 단순히 “리스트만 쓰는 습관”을 버리고, 용도에 맞는 컨테이너를 선택해야겠다.
🚀 적용점
- 데이터 수집 시 중복 데이터 제거가 필요하면 Set 활용
- JSON 형태 데이터 처리 시 자동으로 Dictionary가 핵심
- 좌표, 설정값처럼 변경되면 안 되는 정보는 Tuple로 저장
- 반복 작업, 데이터 순서 유지, CRUD가 필요한 경우는 List 사용
- 알고리즘 공부할 때 각 자료구조의 시간복잡도(Big-O)까지 함께 이해해두기
- 데이터 분석 과정에서도 자료구조 선택에 따라 처리 속도 차이가 발생함을 인지하기
반응형
'데이터' 카테고리의 다른 글
| 제로베이스 데이터사이언스 스쿨 - Part 05. 자료구조&알고리즘 with Python -03 (0) | 2025.11.29 |
|---|---|
| 제로베이스 데이터사이언스 스쿨 - Part 05. 자료구조&알고리즘 with Python -02 (0) | 2025.11.28 |
| 제로베이스 데이터사이언스 스쿨 - Part 04. 기초 통계-19 (0) | 2025.11.26 |
| 제로베이스 데이터사이언스 스쿨 - Part 04. 기초 통계-18 (0) | 2025.11.25 |
| 제로베이스 데이터사이언스 스쿨 - Part 04. 기초 통계-17 (0) | 2025.11.24 |