본문 바로가기

Language/Python

python 딕셔너리 키 중복으로 넣는법

딕셔너리 키를 중복으로 넣는 법

 

Python dict를 사용하다보면
{"bob":19, "anna":15, "bob":20}
위 딕셔너리처럼 동일한 Key인, bob이 존재할 수 있는 경우가 발생한다.
위 그대로 person = {"bob":19, "anna":15, "bob":20}를 하게되면,
person을 print 할 시, {"bob":20, "anna":15}로 나올 것이다.

 

지금부터 설명할 내용은,
내가 원하는 바는 {"bob":19, "anna":15, "bob":20} 였는데, {"bob":20, "anna":15}로 나올때
{"bob":19, "anna":15, "bob":20}로 딕셔너리에 저장하는 방법이다.

 

class person(object):
    def __init__(self,name):
        self.name = name

    def __str__(self):
        return self.name

    def __repr__(self):
        return "'"+self.name+"'"


위처럼 각 Key를 각각의 객체로 만들어버리는것이다.
위 class를 적용한 예시를 아래 적어놓음

class person(object):
    def __init__(self,name):
        self.name = name

    def __str__(self):
        return self.name

    def __repr__(self):
        return "'"+self.name+"'"


def solution():
    tmp_dict = {}

    tmp_dict[person("bob")] = 18
    tmp_dict[person("bob")] = 20
    tmp_dict[person("anna")] = 15

    print (tmp_dict)

 

아웃풋은 원했던것처럼 다음과같이 나온다

>>> {"bob":18, "bob":20 ,"anna":15, }

 

참고링크 

http://www.wellho.net/mouth/3934_Multiple-identical-keys-in-a-Python-dict-yes-you-can-.html

반응형