반응형
Python에서 자주 사용되는 튜플(tuple), 딕셔너리(dict), **집합(set)**의 개념과 차이점을 정리했습니다.
🔍 튜플, 딕셔너리, 집합(set) 비교표
자료형 변경 가능 여부 중복 허용 순서 유지 접근 방법
튜플 (tuple) | ❌ 불변(immutable) | ✅ 허용 | ✅ 유지 | 인덱싱(tuple[i]) |
딕셔너리 (dict) | ✅ 변경 가능 | ❌ 키 중복 불가 | ✅ 유지(3.7부터) | 키(dict[key]) |
집합 (set) | ✅ 변경 가능 | ❌ 중복 불가 | ❌ 순서 없음 | 요소 검색(in 연산) |
1️⃣ 튜플 (tuple)
👉 리스트와 비슷하지만, 한 번 생성하면 변경할 수 없음!
# 튜플 생성
my_tuple = (1, 2, 3, 4, 5)
# 요소 접근
print(my_tuple[0]) # 출력: 1
# 튜플은 불변이므로 아래 코드 실행 시 에러 발생
# my_tuple[0] = 10 # ❌ TypeError 발생
✔ 언제 사용?
- 값이 변경되지 않아야 하는 경우 (좌표, 색상 값 등)
- 여러 개의 값을 한 번에 저장할 때 (return 값으로 여러 개 반환할 때 유용)
2️⃣ 딕셔너리 (dict)
👉 key-value(키-값) 형태로 데이터를 저장하며, 키는 중복될 수 없음!
# 딕셔너리 생성
my_dict = {"name": "Alice", "age": 25, "city": "Seoul"}
# 값 접근
print(my_dict["name"]) # 출력: Alice
# 값 변경 가능
my_dict["age"] = 26
print(my_dict) # {'name': 'Alice', 'age': 26, 'city': 'Seoul'}
# 새로운 키-값 추가
my_dict["job"] = "Engineer"
print(my_dict) # {'name': 'Alice', 'age': 26, 'city': 'Seoul', 'job': 'Engineer'}
✔ 언제 사용?
- 키를 기반으로 값을 빠르게 검색해야 할 때 (예: 회원 정보 관리, JSON 데이터)
3️⃣ 집합 (set)
👉 중복을 허용하지 않으며, 순서가 없음!
# 집합 생성
my_set = {1, 2, 3, 4, 5, 5, 5} # 중복된 5는 자동 제거됨
# 요소 추가
my_set.add(6)
print(my_set) # {1, 2, 3, 4, 5, 6}
# 요소 제거
my_set.remove(3)
print(my_set) # {1, 2, 4, 5, 6}
# 집합 연산 (교집합, 합집합, 차집합)
set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1 & set2) # 교집합: {3}
print(set1 | set2) # 합집합: {1, 2, 3, 4, 5}
print(set1 - set2) # 차집합: {1, 2}
✔ 언제 사용?
- 중복된 요소를 자동으로 제거해야 할 때 (list(set(my_list))로 중복 제거 가능)
- 수학적 집합 연산을 수행할 때 (교집합, 합집합 등)
🚀 요약
- 튜플 (tuple): 불변(immutable), 순서 있음, 변경 불가능 → 안전하게 저장할 때 사용
- 딕셔너리 (dict): 키-값 저장 구조, 빠른 검색 → 연관된 데이터를 저장할 때 사용
- 집합 (set): 중복 허용 안 함, 순서 없음 → 중복 제거 및 집합 연산에 사용
📌 튜플은 리스트처럼 쓰지만 변경이 불가능하고,
📌 딕셔너리는 키를 이용해 빠르게 검색할 수 있으며,
📌 집합은 중복을 자동으로 제거하고 집합 연산이 가능하다는 점을 기억하세요
반응형
'IT > Python Basic' 카테고리의 다른 글
[python] 파이썬 isdigit() 함수 완벽 가이드 (0) | 2025.03.19 |
---|---|
[Python] 특집 - range() 함수로 리스트 다루기 (0) | 2025.03.18 |
[Python] 초급 개념21 - 파이썬 반복문의 종류 (0) | 2025.03.18 |
[Python] 초급 개념21 - sort()와 sorted() (0) | 2025.03.14 |
[python] 문자와 ASCII/Unicode 변환 - ord()와 chr() 함수 정리 (0) | 2025.02.27 |
[Python] 특집 개념 - translate 함수 (0) | 2025.02.24 |
[Python] 코딩테스트 필수 math 함수 개념 (0) | 2025.02.21 |
[Python] 슬라이싱 특집 - 기본부터 고급 활용까지 (0) | 2025.02.20 |
댓글