-
Python 튜토리얼 03 튜플과 딕셔너리Study/Python 튜토리얼 2025. 9. 23. 11:53

목차
들어가며: 파이썬의 핵심 자료구조, 튜플과 딕셔너리 정복하기
1. 튜플(Tuple): 수정할 수 없는 안전한 리스트
1-1. 튜플 생성과 기본 특징
1-2. 튜플의 불변성(Immutability)과 수정 방법
1-3. 튜플과 리스트 변환, 그리고 편리한 언패킹
2. 딕셔너리(Dictionary): 키(Key)와 값(Value)으로 세상을 정리하다
2-1. 딕셔너리 생성 및 기본 조작 (추가, 조회, 수정, 삭제)
2-2. 딕셔너리 활용: 중첩 데이터와 유용한 메서드
2-3. zip()으로 두 리스트를 딕셔너리로 합치기
마치며: 데이터 구조를 알면 코드가 보인다
들어가며: 파이썬의 핵심 자료구조, 튜플과 딕셔너리 정복하기
안녕하세요! 파이썬 코딩의 세계에 오신 것을 환영합니다.
데이터를 다루다 보면, 여러 개의 값을 하나의 묶음으로 관리해야 할 때가 많습니다.
리스트에 이어, 오늘은 파이썬의 또 다른 강력한 데이터 보관함인 튜플(Tuple)과 딕셔너리(Dictionary)에 대해 알아보겠습니다.
이 두 자료구조의 특징을 이해하고 언제 사용해야 하는지 안다면, 여러분의 코드는 훨씬 더 효율적이고 직관적으로 변할 것입니다.
자, 그럼 시작해보겠습니다.
1. 튜플(Tuple): 수정할 수 없는 안전한 리스트
튜플은 리스트와 매우 비슷하지만,
한 가지 결정적인 차이가 있습니다. 바로 '수정할 수 없다'(immutable)'는 점입니다.
한번 생성된 튜플의 내용은 바꿀 수 없어서, 데이터의 무결성을 지키고 싶을 때 유용하게 사용됩니다.
1-1. 튜플 생성과 기본 특징
튜플은 소괄호 ()를 사용하여 만듭니다.
# 071: 빈 튜플 생성 및 타입 확인 my_variable = () print(type(my_variable)) # 결과: <class 'tuple'> # 072: 영화 랭킹 튜플 생성 movie_rank = ("닥터 스트레인지", "스플릿", "럭키")원소가 하나인 튜플을 만들 때는 반드시 뒤에 쉼표(,)를 붙여야 합니다. 쉼표가 없으면 파이썬은 일반 숫자로 인식합니다.
# 073: 원소가 하나인 튜플 my_tuple1 = 1 print(type(my_tuple1)) # 결과: <class 'int'> my_tuple2 = (1,) print(type(my_tuple2)) # 결과: <class 'tuple'>1-2. 튜플의 불변성(Immutability)과 수정 방법
튜플의 가장 큰 특징은 불변성입니다. 생성 후에 내부 원소를 바꾸려고 하면 에러가 발생합니다.
# 074: 튜플 원소 수정 시도 (에러 발생) t = (1, 2, 3) # t[0] = "a" # TypeError: 'tuple' object does not support item assignment그렇다면 튜플의 내용을 바꾸고 싶을 땐 어떻게 할까요?
기존 튜플을 수정하는 대신, 새로운 튜플을 만들어 변수에 다시 할당해야 합니다.
# 076: 튜플 변수에 새로운 튜플 할당 t = ("a", "b", "c") t = ("A", "b", "c") # 't'라는 변수가 이제 새로운 튜플을 가리킴1-3. 튜플과 리스트 변환, 그리고 편리한 언패킹
필요에 따라 튜플을 리스트로, 리스트를 튜플로 자유롭게 변환할 수 있습니다.
# 077: 튜플을 리스트로 변환 interest = ("삼성전자", "LG전자", "SK Hynix") data = list(interest) # 078: 리스트를 튜플로 변환 interest = ["삼성전자", "LG전자", "SK Hynix"] data = tuple(interest)튜플 언패킹(Unpacking)은 튜플의 각 원소를 여러 변수에 한 번에 할당하는 아주 편리한 기능입니다.
# 079: 튜플 언패킹 temp = ("apple", "banana", "cake") a, b, c = temp print(a, b, c) # 결과: apple banana cakerange() 함수를 이용하면 연속된 숫자를 가진 튜플도 쉽게 만들 수 있습니다.
# 080: range 함수로 튜플 생성 # 2부터 100 전까지 2씩 증가하는 짝수 튜플 data = tuple(range(2, 100, 2)) print(data) # 결과: (2, 4, 6, ..., 98)
2. 딕셔너리(Dictionary): 키(Key)와 값(Value)으로 세상을 정리하다
딕셔너리는 '키(Key)'와 '값(Value)'이 하나의 쌍을 이루는 데이터를 저장하는 자료구조입니다.
순서가 없는 대신, 고유한 키를 통해 값을 빠르고 직관적으로 찾아올 수 있습니다.
2-1. 딕셔너리 생성 및 기본 조작 (추가, 조회, 수정, 삭제)
딕셔너리는 중괄호 {}를 사용하여 Key: Value 형태로 만듭니다.
# 084: 비어있는 딕셔너리 생성 temp = {} # 085: 아이스크림 가격 딕셔너리 생성 ice = {"메로나": 1000, "폴라포": 1200, "빵빠레": 1800}추가 & 수정: 새로운 키와 값을 할당하거나, 기존 키에 새로운 값을 할당합니다.
# 086: 새로운 아이스크림 추가 ice["죠스바"] = 1200 ice["월드콘"] = 1500 # 088: 메로나 가격 수정 ice["메로나"] = 1300조회: 대괄호 [] 안에 키를 넣어 값을 조회합니다. 존재하지 않는 키를 조회하면 KeyError가 발생합니다.
# 087: 메로나 가격 조회 print("메로나 가격: ", ice["메로나"]) # 090: 없는 키 조회 (KeyError 발생) # icecream["누가바"]삭제: del 키워드를 사용하여 특정 키-값 쌍을 삭제합니다.
# 089: 메로나 삭제 del ice["메로나"]2-2. 딕셔너리 활용: 중첩 데이터와 유용한 메서드
딕셔너리의 값(Value)으로는 숫자나 문자열뿐만 아니라 리스트,
심지어 다른 딕셔너리도 저장할 수 있어 복잡한 데이터를 구조화하기 좋습니다.
# 091: 재고 정보를 리스트로 저장 inventory = {"메로나": [300, 20], "비비빅": [400, 3], "죠스바": [250, 100]} # 092: 메로나 가격(리스트의 첫 번째 원소) 조회 print(inventory["메로나"][0], "원") # 결과: 300 원 # 093: 메로나 재고(리스트의 두 번째 원소) 조회 print(inventory["메로나"][1], "개") # 결과: 20 개딕셔너리는 다음과 같은 유용한 메서드를 제공합니다.
- .keys(): 모든 키를 모아서 보여줍니다.
- .values(): 모든 값을 모아서 보여줍니다.
- .update(): 다른 딕셔너리의 내용을 현재 딕셔너리에 병합(추가/수정)합니다.
# 095: 아이스크림 이름(키)만 모으기 icecream = {"탱크보이": 1200, "폴라포": 1200, "빵빠레": 1800} ice_names = list(icecream.keys()) # 096: 아이스크림 가격(값)만 모으기 ice_prices = list(icecream.values()) print(ice_prices) # [1200, 1200, 1800] # 097: 전체 가격 합계 구하기 total_price = sum(icecream.values()) # 098: 신제품 딕셔너리 추가하기 new_product = {"팥빙수": 2700, "아맛나": 1000} icecream.update(new_product)2-3. zip()으로 두 리스트를 딕셔너리로 합치기
keys 리스트와 values 리스트가 따로 있을 때, zip() 함수와 dict() 함수를 함께 사용하면 매우 간편하게 딕셔너리를 만들 수 있습니다.
# 099: 과일 이름과 가격으로 딕셔너리 만들기 keys = ("apple", "pear", "peach") vals = (300, 250, 400) result = dict(zip(keys, vals)) print(result) # 결과: {'apple': 300, 'pear': 250, 'peach': 400} # 100: 날짜별 종가로 딕셔너리 만들기 date = ["09/05", "09/06", "09/07", "09/08", "09/09"] close_price = [10500, 10300, 10100, 10800, 11000] close_table = dict(zip(date, close_price)) print(close_table) # 결과: {'09/05': 10500, '09/06': 10300, '09/07': 10100, '09/08': 10800, '09/09': 11000}
마치며: 데이터 구조를 알면 코드가 보인다
오늘은 파이썬의 핵심 자료구조인 튜플과 딕셔너리에 대해 알아보았습니다.
- 튜플은 수정이 불가능하여 안전하게 데이터를 보관하고 싶을 때 사용합니다.
- 딕셔너리는 키-값 쌍으로 데이터를 저장하여, 순서가 아닌 의미 있는 이름으로 데이터에 접근하고 싶을 때 매우 유용합니다.
어떤 데이터를 어떤 구조에 담을지 결정하는 것은 효율적이고 가독성 높은 코드를 작성하는 데 매우 중요합니다.
오늘 배운 내용을 바탕으로, 상황에 맞는 최적의 데이터 구조를 선택하는 연습을 꼭 해보시길 바랍니다!
코드 출처: https://wikidocs.net/7003
05. 파이썬 튜플
조금 더 자세한 설명을 원한다면 클래스101의 "Level2 중급 파이썬"을 추천합니다. 고급 문법을 아는 것이 고급 실력을 의미하지 않습니다. "Level1 기초 파이썬"부터 …
wikidocs.net
코드 출처: https://wikidocs.net/7004
06. 파이썬 딕셔너리
조금 더 자세한 설명을 원한다면 클래스101의 "Level2 중급 파이썬"을 추천합니다. 고급 문법을 아는 것이 고급 실력을 의미하지 않습니다. "Level1 기초 파이썬"부터 …
wikidocs.net
'Study > Python 튜토리얼' 카테고리의 다른 글
Python 튜토리얼 06 함수 (0) 2025.09.26 Python 튜토리얼 05 반복문 (0) 2025.09.25 Python 튜토리얼 04 분기문 (0) 2025.09.24 Python 튜토리얼 02 문자열과 리스트 (0) 2025.09.22 Python 튜토리얼 01 변수와 문자열 (0) 2025.09.21