#title Hash Table 흉내내기 아래와 같은 딕셔너리가 있다. {{{ dic = {'a':1, 'b':2, 'c':3, 'd':3, 'e':3, 1:1} }}} 키로 검색하기는 쉽다. {{{ dic['a'] }}} 값은 어떤가? 딕셔너리에서 값이 3인 키들을 검색해봤다. {{{ p = 3 search = [] for k in dic: if(dic[k] == p): search.append(k) print(search) }}} 결과 {{{ ['d', 'c', 'e'] }}} 만약 딕셔너리를 계속 이런식으로 검색해야 한다면 이는 비효율적인 일이 된다. 값을 효율적으로 검색하려면 검색하기 적당한 자료구조여야 한다. 키와 값을 바꾼 해쉬 테이블 형태라면 값을 검색할 때에 딕셔너리르 계속 스캔하지 않고 일부분만을 검색하여 적당한 성능을 기대할 수 있을 것 같다. 아래와 같이 구현해 봤다. (아마도 라이브러리를 찾아보면 있을 것이다. 공부 차원에서 해봤다) {{{ hash_table = {} for k, v in dic.items(): if(v not in hash_table): hash_table[v] = [] hash_table[v].append([k]) print(hash_table) }}} 결과 {{{ {1: [[1], ['a']], 2: [['b']], 3: [['d'], ['c'], ['e']]} }}}