_대문 | 방명록 | 최근글 | 홈피소개 | 주인놈 |
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']]}
|
성공의 보장은 없지만 시도조차 하지 않는 건 실패를 보장하는 길이다. 남들이 하는 방식으론 세계 제일이 될 수 없다. (jungim) |