[Python] 딕셔너리 사용하기

    연결된 값을 묶어서 저장하는 용도로 딕셔너리라는 자료형을 제공한다.

    a = {'a' : 50, 'b' : 40}

    딕셔너리의 특징은 {} 중괄호를 사용한다는 점이다.

    그리고 Java에서의 Map 방식을 이용한다.

     

    기존 리스트는 순서대로 들어갔으므로 순서를 통해 위치를 파악한다면

    딕셔너리는 a { 키값 : 결과값}의 키값을 통해서 결과값을 비교한다.

     

    즉, 키 값을 임의로 저장 할 수 있으며, 내가 원하는 키값을 통해 결과값을 도출 시킬 수가 있다.

     

     

    여기서 만약 key값이 중복 된다면? 

    a = {'a' : 10, 'b':20, 'a':30}

    >>>a :30, b: 20

     

    기존 언어와는 다르게 중복된 데이터가 들어오더라도 Error가 발생하지 않는다.

    그러나 기존의 자료는 버리고 새로운 값이 들어감을 확인 할 수가 있다.

     

    그러므로 중복이 되더라도 Error가 발생하지 않으므로 괜찮을 수도 있지만 데이터가 사라질 수도 있으므로 조심해야 한다.

     

     

     

    딕셔너리 키의 자료형

    딕셔너리의 키는 문자열 뿐만 아니라 정수, 실수, 불도 모두 사용 할 수 있다. 혹은 자료형을 섞어서도 가능하다.

    값에는 리스트, 딕셔너리 등 모든 자료형을 사용 할 수가 있다.

    x = {'a' : 5, 2 : 3, 3, [1,3]}

    그러나 키값에는 딕셔너리, 리스트를 사용 할 수는 없다.

     

     

     

    빈 딕셔너리 만들기

    x = {}
    
    y = dict()

    비어있는 딕셔너리를 생성한다.

     

    x = dict(a=5, b=4)

    >>> {'a' : 5, 'b' : 4}

     

    키와 결과값을 들어갔음을 확인 할 수가 있다.

     

     

    딕셔너리의 키에 접근하고 값 할당하기

    딕셔너리[키 값]

     

    기존 리스트, 튜플 같은 경우 인덱스 []을 사용했다. 딕셔너리도 마찬가지다.

    다만 인덱스로 정하지 않고 정해진 키 값을 통해 접근을 한다는 점이다.

    lux = {'health':490}
    lux['health']

    인덱스 값 대신 키값을 통해 접근한다.

     

     

    이 방법대로, 접근을 한다면 여기에 해당 값을 넣을 수도 있다.

    lux = {'health':490}
    lux['health'] = 500

    >>> {'health' : 500}

     

     

    결과값은 항상 변경 할 수가 있다.

     

     

    딕셔너리에 값이 있는지 확인하기

    키 in 딕셔너리

     

    lux={'health' : 550, 'aa' : 440}
    'health' in lux

    >>> True

     

     

    앞에 설명한 in처럼 키의 유무를 파악 할 수가 있다. 이에 따라 True, False가 결정된다.

    마찬가지로 not in을 사용하게 될 경우 결과값은 반대가 된다.

     

     

    딕셔너리 갯수 구하기

    a = {'a' : 550, 'b' : 440, 'c' : 330}
    len(a)

    >>>3

     

    len(딕셔너리)을 사용하면 키와 결과에 대한 개수가 나온다.

     

     

     

    딕셔너리

    여기서 중요한 점은 키와 결과값은 반드시 1:1 관계로 저장된다는 점이 중요하다.

    내가 원하는 검색에 따라 검색 결과를 자유롭게 할 수 있다는 것이다.

    반응형

    'Language > Python' 카테고리의 다른 글

    [Python] 리스트 추가하기  (0) 2020.10.13
    [Python] if 사용하기  (0) 2020.10.13
    [Python] 시퀀스 자료 활용하기  (0) 2020.10.13
    [Python] 11장 시퀀스  (0) 2020.10.12
    [Python] 10장 배열  (0) 2020.10.12

    댓글

    Designed by JB FACTORY