[Python] 파이썬에서 딕셔너리(Dictionary) 사용법

    리스트(list)와 튜플(tuple)이 순서가 있는 배열 형태의 자료형이라면 딕셔너리(dictionary)는 키(key)와 값(value)이 쌍으로 있는 자료형입니다. 우리가 사전을 보면 찾는 대상인 주제(ex: 단어)와 내용이 있는 것처럼 딕셔너리는 동일하며 결국 딕셔너리의 목적은 Key로 Value를 찾는 것입니다.

     

    파이썬 딕셔너리 사용법

     

    딕셔너리 선언

    딕셔너리변수명 = {key1 : value1, key2 : value2 ... keyn : valuen}
    >>> kor_eng = {'동쪽':'east','서쪽':'west','학생':'student','소년':'boy','소녀':'girl'}
    >>> kor_eng
    {'동쪽': 'east', '서쪽': 'west', '학생': 'student', '소년': 'boy', '소녀': 'girl'}

    딕셔너리의 값은 key와 value를 중괄호에 넣고 있습니다. 이때 key는 문자열과 숫자(정수, 실수)만 가능하고 value는 제한이 없습니다. 

     

    딕셔너리 값(Value) 찾기

    >>> kor_eng['소년']
    'boy'

    딕셔너리에서 값을 찾는 방법은 딕셔너리변수[키]를 하면 됩니다

     

    딕셔너리 데이터 추가 방법

    >>> kor_eng['파이썬'] = 'python'
    >>> kor_eng['파이썬']
    'python'

    딕셔너리에 값을 추가하는 방법은 딕셔너리변수명[키] = 값과 같은 형태로 입력을 하면 됩니다.

     

    딕셔너리 다른 데이터형

    >>> kor_eng['info'] = {'pages':200, 'year':2020}
    >>> kor_eng[1] = [1,2,3]
    >>> kor_eng
    {'동쪽': 'east', '서쪽': 'west', '학생': 'student', '소년': 'boy', '소녀': 'girl', '파이썬': 'python', 'info': {'pages': 200, 'year': 2020}, 1: [1, 2, 3]}
    >>> kor_eng[1]
    [1, 2, 3]
    >>> kor_eng['info']
    {'pages': 200, 'year': 2020}

    딕셔너리는 이와같이 다른 데이터형도 추가할 수 있고, key에 정수형도 추가할 수 있습니다. 

     

    딕셔너리 데이터(key, value) 삭제

    >>> del kor_eng[1]
    >>> kor_eng[1]
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    KeyError: 1
    >>> kor_eng
    {'동쪽': 'east', '서쪽': 'west', '학생': 'student', '소년': 'boy', '소녀': 'girl', '파이썬': 'python', 'info': {'pages': 200, 'year': 2020}}

    딕셔너리에서 데이터를 삭제하는 방법은 del 딕셔너리변수명[키]를 하면 됩니다.

     

    딕셔너리 데이터 갱신(update)

    >>> kor_eng['info'] = {'pages':201, 'year':2020}
    >>> kor_eng['info']
    {'pages': 201, 'year': 2020}

    딕셔너리의 데이터를 갱신하는 방법은 데이터를 추가하는 방법과 동일합니다. 동일한 키라면 update를 하게 됩니다.

     

     

    딕셔너리에서 키(Key)만 뽑기

    >>> kor_eng_keys = kor_eng.keys()
    >>> kor_eng_keys
    dict_keys(['동쪽', '서쪽', '학생', '소년', '소녀', '파이썬', 'info'])
    >>> type(kor_eng_keys)
    <class 'dict_keys'>

    키만 뽑는 방법은 딕셔너리변수.keys()를 하는 것입니다. 이때 데이터를 뽑을 때 클래스가 dict_keys라는 타입으로 뽑게 됩니다.

     

    딕셔너리에서 값(Value)만 뽑기

    # kor_eng의 value 값들을 kor_eng_vals에 넣는다
    >>> kor_eng_vals = kor_eng.values()
    >>> kor_eng_vals
    dict_values(['east', 'west', 'student', 'boy', 'girl', 'python', {'pages': 201, 'year': 2020}])
    # kor_eng의 value 값들 만큼 loop를 돌고 v변수에 담아 출력한다
    >>> for v in kor_eng.values():
    ...  print(v)
    ...
    east
    west
    student
    boy
    girl
    python
    {'pages': 201, 'year': 2020}

    값을 뽑는 방법 역시 키를 뽑는것과 동일합니다. keys() 대신 values()를 넣어주면 됩니다.

     

    딕셔너리를 리스트 형태로 받아오기

    >>> kor_eng_items = kor_eng.items()
    >>> kor_eng_items
    dict_items([('동쪽', 'east'), ('서쪽', 'west'), ('학생', 'student'), ('소년', 'boy'), ('소녀', 'girl'), ('파이썬', 'python'), ('info', {'pages': 201, 'year': 2020})])

    딕셔너리 형태를 리스트와 유사하게 출력하려면 items()를 사용하면 됩니다. kor_eng_items 변수를 보면 기존의 딕셔너리 값들은 튜플형태인 괄호 형태로 들어가 있고, 이를 리스트 형태인 대괄호로 한번 더 감싼 형태라는 것을 확인할 수 있습니다.

     

    이렇게 리스트형으로 만들 경우, 반복문으로 처리하기가 수월해 집니다.

    딕셔너리 for 반복문으로 출력

    # 키만 출력하기
    >>> for k in kor_eng.keys():
    ...  print(k)
    ...
    동쪽
    서쪽
    학생
    소년
    소녀
    파이썬
    info
    
    # 키를 기반으로 value 출력하기
    >>> for k in kor_eng.keys():
    ...  print(k, '=>', kor_eng[k])
    ...
    동쪽 => east
    서쪽 => west
    학생 => student
    소년 => boy
    소녀 => girl
    파이썬 => python
    info => {'pages': 201, 'year': 2020}
    
    # 키와 밸류를 한번에 출력하기
    >>> for k, v in kor_eng.items():
    ...  print(k, v)
    ...
    동쪽 east
    서쪽 west
    학생 student
    소년 boy
    소녀 girl
    파이썬 python
    info {'pages': 201, 'year': 2020}

     

    for문으로 딕셔너리 형태의 값들을 출력하는 방식입니다. 개발자마다 취향이 다를 수 있겠지만 키와 값을 한번에 가져올 수 있고 파이썬만의 독특하고 강력한 for문을 즐기는 방법은 마지막 방법이라 말할 수 있겠습니다.

     

    연관포스팅

    2020/12/23 - [Language/Python] - [Python] 파이썬에서 튜플(Tuple) 다루기, 튜플 써야 할 때

    2020/12/23 - [Language/Python] - [Python] 파이썬에서 리스트 사용하기

    2020/12/19 - [Language/Python] - [Python] 파이썬의 반복문(for문)

    반응형

    댓글

    Designed by JB FACTORY