본문 바로가기
Python

Python 데이터 구조(Data Structure)와 CRUD 예시

by ssury94 2025. 1. 17.

 

데이터를 저장하고 처리하는 데 필수적인 데이터 구조에 대해 알아보고,  CRUD(Create, Read, Update, Delete) 예시와 각 구조의 사용 사례를 살펴보겠습니다.

Python의 데이터 구조 🐍

Python은 직관적이고 사용하기 쉬운 다양한 데이터 구조를 제공합니다. 각각의 구조는 특정한 상황에서 더욱 유용하게 사용됩니다.

1. List (리스트) [  ]

  • 특징: 순서가 있는 데이터의 집합으로, 변경 가능합니다.
  • 사용 사례: 데이터의 순서가 중요하거나, 항목을 반복적으로 추가/삭제해야 하는 경우에 적합합니다.
  •  데이터 엑세스와의 차이
sentence ='hello world'
sentence[1]

sentence[1] = 'e'

'hello world'의 2번째 글자를 가져옵니다.

  • 여러 데이터타입(리스트까지도!)의 데이터를 하나의 리스트로 저장 가능합니다.
[1,2,'삼','사',5.5, [2,3,4]]

CRUD 예시

# Create
names = ["alice", "bob", "charlie"]
[]

# Read
print(names[0])  # alice 출력

# Update
names[0] = "Alice"

# Delete
del names[0]  # 첫 번째 요소 삭제
week.pop(0) # 삭제한 데이터를 확인할 수 있음


# 리스트에 항목 추가하기 (리스트 맨 끝에 추가됨)
week.append('Sat')

# 위치를 지정해서 추가하기
week.insert(-1,'Fri')

2. Dictionary (딕셔너리) { key : value }

  • 특징: Key-Value 쌍으로 데이터를 저장하며, 순서가 유지됩니다 (Python 3.7 이상).
  • key, value 의 쌍 pair  은  item 이라고 합니다.
  • 사용 사례: 데이터에 이름(키)을 붙여 저장하고 검색해야 할 때 유용합니다.

CRUD 예시

# Create
info = {"brand": "Apple", "model": "iPhone"}
info["brand"] = "Samsung"
{}

# Read
print(info["brand"])  # Apple 출력, 키 값이 없으면 에러
my_phone.get('model') # 함수 방식으로 엑세스하기도 가능, 키값이 없으면 none으로 리턴

# Update
info["brand"] = "Samsung" # 덮어씌우기

# Delete
del info["brand"]

 

 

# 딕셔너리에 브랜드 정보가 있니?
'brand' in my_phone   #True 키 값만 확인가능, value는 불가


# 밸류값만 가져와라 
my_phone.values() 
#dict_values(['Apple', 'iphon 13', 'orange']) 리스트([ ]) 비스무리한애로 리턴됨

list(my_phone.values()) # 리스트로 형 변환!
'Apple' in my_phone.values()

 

3. Tuple (튜플) ( ) 

  • 특징: 순서가 있지만, 변경할 수 없는 데이터 구조입니다.
  • 사용 사례: 변경될 필요가 없는 고정된 데이터를 저장할 때 적합합니다.
    꼭 변경해야한다면 튜플 그 자체에서는 변경이 불가하니 별도의 리스트로 저장해야합니다.
    my_list=list(my_tuple)

CRUD 예시

# Create
data = ("apple", "banana")
()
#하나짜리 튜플을 만들려면 , 을 써줘야함
(3, )

# Read
print(data[0])  # apple 출력

# Update/Delete 불가능

4. Set (집합) { }

  • 특징: 순서가 없고, 중복을 허용하지 않는 데이터 구조입니다.
  • 딕셔너리와 같이 중괄호 { }를 사용하지만, key:value의 한 쌍이 아닙니다.
  • 사용 사례: 데이터의 중복을 제거하거나 교집합, 차집합 등의 집합 연산을 수행할 때 유용합니다.
    - 예시 # 이벤트 페이지 클릭 - page_view = list 클릭할때마다 조회수 체크
    unique값을 찾으려면? unique_page_view=set(page_view)

CRUD 예시

# Create
fruits = {"apple", "banana"}
# 빈 집합(set)은 함수로 만들어야한다.
my_set=set()

# Read
print("apple" in fruits)  # True 출력

# Update
fruits.add("cherry")

# Delete
fruits.remove("apple")

 

 

#합집합 - 이벤트 a와 b 참여한 사람 다 뽑아봐 | or

event_a | event_b

 

 

#교집합 - 이벤트 a와 b 둘다 참여한 사람 다 뽑아봐 &

event_a & event_b

 

#차집합 - 이벤트 a 응모한 사람은 제외해

event_b - event_a

 

 

데이터 구조 사용 가이드 💡

  1. List: 데이터가 순차적으로 저장되고, 순서를 유지해야 하는 경우. 예: 학생 명단, 대기열
  2. Dictionary: 데이터 항목에 키를 부여하여 빠르게 접근해야 하는 경우. 예: 사용자 정보, 설정 값
  3. Tuple: 변경되지 않아야 하는 데이터를 저장할 때. 예: 좌표, 색상 값
  4. Set: 중복 데이터를 제거하거나 집합 연산을 수행할 때. 예: 고유 사용자 ID, 태그 목록

Python의 다양한 데이터 구조를 상황에 맞게 선택하여 효율적으로 데이터를 처리하세요! 🚀