[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']}
'''

You may also like...

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다