[Python]Hash, Dict 고급예제
Hash와 Dict 고급 예제에 대해 알아보자.
# Hash 함수, Dict 생성 고급예제, dict.setdefault() # Hash => key, value 형태로 저장하는 자료구조 # key를 연산(hash 함수)하여 value에 직접 접근한다. # 파이썬의 dict 구조 # print(__builtins__.__dict__) # Hash 주소확인 t1 = (1, 2, 3, (4, 5, 6)) print(hash(t1)) print() ''' 8733477148793167552 ''' t2 = (1, 2, 3, [4, 5, 6]) # print(hash(t2)) => 에러발생(TypeError: unhashable type: 'list'), list는 가변타입으로 해쉬함수를 적용할 수 없다. # Dict setdefault 예제 source = ( ('k1', 'val1'), ('k1', 'val2'), ('k2', 'val3'), ('k2', 'val4'), ('k2', 'val5') ) # setdefault 미사용 dict1 = {} for k, v in source: if k in dict1: dict1[k].append(v) else: dict1[k] = [v] print(dict1) # setdefault 사용 dict2 = {} for k, v in source: dict2.setdefault(k, []).append(v) print(dict2) ''' 출력결과 {'k1': ['val1', 'val2'], 'k2': ['val3', 'val4', 'val5']} {'k1': ['val1', 'val2'], 'k2': ['val3', 'val4', 'val5']} '''
최신 댓글