ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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 cake
    

     

    range() 함수를 이용하면 연속된 숫자를 가진 튜플도 쉽게 만들 수 있습니다.

    # 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

     

Designed by Tistory.