목차
🚀 Python 자료형 완벽 정리 – 튜플, 딕셔너리, 집합 활용하기!
Python에는 여러 개의 데이터를 저장하고 다룰 수 있는 다양한 자료형이 존재합니다.
이전 글에서는 리스트(List) 를 활용하는 방법을 배웠다면, 이번 글에서는 튜플(Tuple), 딕셔너리(Dictionary), 집합(Set) 에 대해 깊이 있게 살펴보겠습니다. 😊
📌 1. 튜플(Tuple) – 변경할 수 없는 리스트
튜플(Tuple)은 리스트와 유사하지만, 요소를 변경할 수 없는(Immutable) 자료형 입니다.
소괄호(())를 사용하여 생성하며, 순서를 유지하면서 여러 개의 값을 저장할 수 있습니다.
✅ 1) 튜플 생성하기
fruits = ("사과", "바나나", "딸기", "포도")
print(fruits) # ('사과', '바나나', '딸기', '포도')
튜플을 정의할 때는 괄호 ()를 사용하지만, 괄호 없이도 튜플을 생성할 수 있습니다.
numbers = 1, 2, 3, 4, 5 # 괄호 없이 튜플 생성 가능
print(numbers) # (1, 2, 3, 4, 5)
✅ 2) 튜플의 주요 특징
✔ 리스트와 달리 요소를 변경할 수 없음
✔ 순서가 유지되며, 인덱스를 통해 접근 가능
✔ 메모리 사용량이 적어 리스트보다 빠름
✔ 데이터 보호가 필요한 경우 유용
✅ 3) 튜플 요소 접근 (인덱싱 & 슬라이싱)
튜플도 리스트처럼 인덱스(Index)를 사용하여 개별 요소에 접근할 수 있습니다.
fruits = ("사과", "바나나", "딸기", "포도")
print(fruits[0]) # 사과 (첫 번째 요소)
print(fruits[-1]) # 포도 (마지막 요소)
print(fruits[1:3]) # ('바나나', '딸기') (슬라이싱)
📌 튜플은 불변(Immutable)이므로, 요소를 변경하려 하면 오류가 발생합니다.
fruits[0] = "망고" # TypeError 발생: 튜플은 요소 변경 불가능
✅ 4) 튜플의 활용 – 여러 개의 변수 한 번에 할당하기 (언패킹)
튜플을 활용하면 여러 개의 변수를 한 줄에 할당할 수 있습니다.
a, b, c = (10, 20, 30) # 튜플 언패킹 (Unpacking)
print(a, b, c) # 10 20 30
✔ 두 변수의 값을 바꿀 때 유용
x, y = 5, 10
x, y = y, x # x와 y의 값을 교환
print(x, y) # 10 5
✔ 함수에서 여러 개의 값을 반환할 때 사용
def get_point():
return (3, 7) # 튜플 반환
x, y = get_point()
print(x, y) # 3 7
📌 2. 딕셔너리(Dictionary) – 키(Key)와 값(Value)으로 이루어진 자료형
딕셔너리(Dictionary)는 "키(Key)와 값(Value)의 쌍"으로 데이터를 저장하는 자료형 입니다.
대괄호 []를 사용하는 리스트, 튜플과 달리, 중괄호 {}를 사용하여 생성합니다.
person = {
"이름": "홍길동",
"나이": 25,
"도시": "서울"
}
print(person) # {'이름': '홍길동', '나이': 25, '도시': '서울'}
✅ 1) 딕셔너리의 주요 특징
✔ 키(Key)를 사용하여 값(Value)에 접근
✔ 순서가 유지되며, 중복 키는 허용되지 않음
✔ 값은 변경 가능(Mutable)하지만, 키는 변경할 수 없음
✔ 검색 속도가 리스트보다 빠름
✅ 2) 딕셔너리 요소 접근 및 값 변경
✔ 키를 사용하여 값 가져오기
print(person["이름"]) # 홍길동
print(person.get("나이")) # 25
✔ 새로운 키-값 추가 및 기존 값 변경
person["직업"] = "개발자" # 새로운 키 추가
person["도시"] = "부산" # 기존 값 변경
print(person) # {'이름': '홍길동', '나이': 25, '도시': '부산', '직업': '개발자'}
✔ 키-값 삭제하기 (del, pop)
del person["도시"] # 특정 키 삭제
print(person) # {'이름': '홍길동', '나이': 25, '직업': '개발자'}
age = person.pop("나이") # pop() 사용 시 삭제된 값 반환
print(age) # 25
print(person) # {'이름': '홍길동', '직업': '개발자'}
✅ 3) 딕셔너리 반복문 활용
✔ 키(Key) 반복
for key in person:
print(key) # 이름, 직업
✔ 값(Value) 반복
for value in person.values():
print(value) # 홍길동, 개발자
✔ 키-값 쌍 반복 (.items())
for key, value in person.items():
print(f"{key}: {value}")
# 출력
# 이름: 홍길동
# 직업: 개발자
✅ 4) 딕셔너리 활용 – 기본값 설정 및 존재 여부 확인
✔ 값이 없을 경우 기본값 반환 (get)
print(person.get("국적", "대한민국")) # "대한민국" (키가 없을 경우 기본값 설정)
✔ 특정 키가 존재하는지 확인 (in)
if "이름" in person:
print("이름이 존재합니다.") # 출력됨
✔ 모든 키 가져오기 (.keys())
print(person.keys()) # dict_keys(['이름', '직업'])
✔ 모든 값 가져오기 (.values())
print(person.values()) # dict_values(['홍길동', '개발자'])
✔ 모든 키-값 쌍 가져오기 (.items())
print(person.items()) # dict_items([('이름', '홍길동'), ('직업', '개발자')])
📌 3. 집합(Set) – 중복을 허용하지 않는 자료형
집합(Set)은 중복을 허용하지 않고, 순서가 없는 자료형입니다.
중괄호 {} 또는 set() 함수를 사용하여 생성할 수 있으며,
빠른 멤버십 테스트(특정 값이 존재하는지 확인하는 연산)에 유용합니다.
numbers = {1, 2, 3, 4, 5}
print(numbers) # {1, 2, 3, 4, 5}
✅ 1) 집합의 주요 특징
✔ 중복된 요소를 허용하지 않음
✔ 순서가 없기 때문에 인덱싱 불가능
✔ 집합 연산(합집합, 교집합, 차집합 등)에 유용
duplicates = {1, 2, 2, 3, 4, 4, 5}
print(duplicates) # {1, 2, 3, 4, 5} (중복 제거됨)
✅ 2) 집합(Set) 생성 및 요소 추가/삭제
✔ set()을 사용하여 리스트에서 중복 제거하기
fruits_list = ["사과", "바나나", "사과", "딸기", "바나나"]
unique_fruits = set(fruits_list) # 중복 제거
print(unique_fruits) # {'사과', '바나나', '딸기'}
✔ 요소 추가 (add)
numbers = {1, 2, 3}
numbers.add(4)
print(numbers) # {1, 2, 3, 4}
✔ 요소 삭제 (remove, discard)
numbers.remove(2) # 존재하지 않는 값을 삭제하면 오류 발생
print(numbers) # {1, 3, 4}
numbers.discard(5) # 존재하지 않는 값을 삭제해도 오류 발생하지 않음
✔ 모든 요소 제거 (clear)
numbers.clear()
print(numbers) # set() (빈 집합)
✅ 3) 집합 연산 (합집합, 교집합, 차집합, 대칭 차집합)
집합은 수학적 개념을 그대로 적용할 수 있어, 집합 연산이 매우 강력합니다.
✔ 합집합 (| 또는 union())
set1 = {1, 2, 3}
set2 = {3, 4, 5}
print(set1 | set2) # {1, 2, 3, 4, 5}
print(set1.union(set2)) # {1, 2, 3, 4, 5}
✔ 교집합 (& 또는 intersection())
print(set1 & set2) # {3}
print(set1.intersection(set2)) # {3}
✔ 차집합 (- 또는 difference())
print(set1 - set2) # {1, 2}
print(set1.difference(set2)) # {1, 2}
✔ 대칭 차집합 (^ 또는 symmetric_difference())
print(set1 ^ set2) # {1, 2, 4, 5}
print(set1.symmetric_difference(set2)) # {1, 2, 4, 5}
✅ 4) 집합을 활용한 중복 제거 및 포함 여부 확인
✔ 리스트에서 중복 제거
numbers = [1, 2, 2, 3, 4, 4, 5]
unique_numbers = list(set(numbers))
print(unique_numbers) # [1, 2, 3, 4, 5]
✔ 특정 값이 집합에 있는지 확인 (in)
fruits = {"사과", "바나나", "딸기"}
print("사과" in fruits) # True
print("망고" in fruits) # False
🚀 마무리 및 다음 글 예고
이번 글에서는 Python의 튜플(Tuple), 딕셔너리(Dictionary), 집합(Set) 을 배워봤습니다. 🎉
✅ 튜플(Tuple) → 변경할 수 없는(Immutable) 순서형 자료형
✅ 딕셔너리(Dictionary) → 키(Key)와 값(Value)으로 데이터를 저장하는 자료형
✅ 집합(Set) → 중복을 허용하지 않고, 집합 연산이 가능한 자료형
📌 다음 글에서는 Python을 활용한 간단한 실습을 진행해 보겠습니다! 🎯
구구단 출력, 계산기 만들기, 체지방률 계산 등 기초적인 Python 프로그래밍을 직접 구현하면서 실력을 키워볼 예정입니다. 😊🚀
'Python' 카테고리의 다른 글
[일단!] 아나콘다(Anaconda) 설치 초보자도 쉽고 자세하게 (6) | 2025.02.17 |
---|---|
[일단!]Python 자료형 완벽 정리 – 리스트(list) (3) | 2025.02.10 |
[일단!] Python 기초 배우기 – 변수(variable) (20) | 2025.02.09 |