_대문 | 방명록 | 최근글 | 홈피소개 | 주인놈
FrontPage › HashTable흉내내기

아래와 같은 딕셔너리가 있다.
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']]}

댓글 남기기..
이름: : 오른쪽의 새로고침을 클릭해 주세요. 새로고침
EditText : Print : Mobile : FindPage : DeletePage : LikePages : Powered by MoniWiki : Last modified 2018-04-13 23:12:53

성공의 보장은 없지만 시도조차 하지 않는 건 실패를 보장하는 길이다. 남들이 하는 방식으론 세계 제일이 될 수 없다. (jungim)