[파이썬] 딕셔너리 (dictionary)

반응형
    반응형

    1. 딕셔너리란?

    딕셔너리(Dictionary)는 파이썬의 내장 데이터 타입 중 하나로, 키(Key)와 값(Value)의 쌍으로 데이터를 저장하는 데 사용됩니다. 딕셔너리는 키를 통해 빠르게 데이터에 접근할 수 있는 효율적인 구조를 가지고 있으며, 해시 테이블(Hash Table)을 기반으로 구현되어 있습니다.

    2. 딕셔너리의 특징 

    (1) 키-값 쌍(Key-Value Pairs): 각 항목은 키와 값으로 구성되어 있으며, 키를 통해 해당하는 값을 찾을 수 있습니다.
    (2) 변경 가능(Mutable): 딕셔너리는 변경 가능하므로, 생성 후에 항목을 추가, 삭제, 수정할 수 있습니다.
    (3) 순서가 없음(Unordered): 딕셔너리는 Python 3.7 이전 버전에서는 순서가 없는 구조였으나, Python 3.7부터는 항목이 추가된 순서를 유지합니다. 그러나 일반적으로 순서에 의존하지 않는 특성을 가지고 있습니다.
    (4) 키의 유일성(Unique Keys): 딕셔너리의 키는 유일해야 합니다. 같은 키가 여러 번 사용될 경우, 마지막으로 할당된 값이 저장됩니다.
    (5) 다양한 데이터 타입(Diverse Data Types): 키와 값 모두 다양한 데이터 타입을 가질 수 있습니다. 키는 변경 불가능한(immutable) 타입이어야 하며, 일반적으로 문자열 또는 숫자가 사용됩니다.

     

    3. 예시

    # 딕셔너리 생성
    my_dict = {
        'name': 'John',
        'age': 30,
        'city': 'New York'
    }
    
    # 값 접근
    print(my_dict['name'])  # 출력: John
    
    # 값 변경
    my_dict['age'] = 31
    
    # 새로운 키-값 쌍 추가
    my_dict['email'] = 'john@example.com'
    
    # 키-값 쌍 삭제
    del my_dict['city']
    
    # 모든 키와 값 출력
    for key, value in my_dict.items():
        print(key, value)

     

    4. 딕셔너리 인덱싱

    딕셔너리는 없는 key를 통해 인덱싱하면 에러가 발생합니다. 에러가 발생하면 파이썬 인터프리터가 종료되죠. 그래서 더 안전한 방법이 필요합니다. 바로 get 함수를 이용하는 것입니다. get 함수를 이용하면 key가 없는 경우에 None을 리턴 시킵니다. 

     

    헬스장가격 = {
        "1개월" : 120000,
        "3개월" : 300000,
        "6개월" : 500000
        }
    
    print(헬스장가격["12개월"])
    print(헬스장가격["1개월"])

     

    위와 같이 입력하면 print(헬스장가격["12개월"])에서 에러가 발생하고 더 이상 진행되지 않습니다. 

     

    헬스장가격 = {
        "1개월" : 120000,
        "3개월" : 300000,
        "6개월" : 500000
        }
        
    print(헬스장가격.get("12개월"))
    print(헬스장가격.get("1개월"))

     

    하지만 get 함수를 이용하면 

     

    None

    120000

     

    이 출력됩니다. 

     

    5. 딕셔너리 수정 

    딕셔너리는 수정이 가능합니다. 

     

    헬스장의 6개월권을 할인해서 40만원으로 변경하였습니다. 그럼 이렇게 적어주면 수정이 됩니다. 

     

    헬스장가격 = {
        "1개월" : 120000,
        "3개월" : 300000,
        "6개월" : 500000
        }
        
    헬스장가격["6개월"]=400000
    print(헬스장가격.get("6개월"))
    400000

     

    6. 딕셔너리 값 추가

    리스트의 경우 insert나 append 라는 함수를 이용하여 값을 추가할 수 있습니다. 하지만 딕셔너리는 딕셔너리[key] = value로 추가가 가능합니다. 

     

    헬스장가격 = {}
    
    헬스장가격["1개월"] = 120000
    헬스장가격["3개월"] = 300000
    헬스장가격["6개월"] = 500000
    
    print(헬스장가격.get("1개월"))
    print(헬스장가격.get("3개월"))
    print(헬스장가격.get("6개월"))

     

    이렇게 비어 있는 딕셔너리에 딕셔너리[key] = value만 입력해주면 추가가 됩니다. 

     

    7. 딕셔너리 값 삭제

    딕셔너리 삭제는 del을 이용하면 됩니다. 

     

    즉, del 딕셔너리[key] 를 입력하면 충분합니다. 

     

    헬스장가격 = {}
    
    헬스장가격["1개월"] = 120000
    헬스장가격["3개월"] = 300000
    헬스장가격["6개월"] = 500000
    
    del 헬스장가격["6개월"]
    
    print(헬스장가격.get("1개월"))
    print(헬스장가격.get("3개월"))
    print(헬스장가격.get("6개월"))

     

    위 코드를 실행하면 120000, 300000, None이 출력됩니다. 즉, 6개월 가격이 삭제된 것입니다. 

     

     

    반응형

    댓글

    Designed by JB FACTORY