Python

[파이썬 문법] 해시 Hash 알고리즘이란?

파프리카. 2023. 1. 27. 20:07

Hash란?

key : value 형태의 자료구조 

파이썬에서는 딕셔너리를 사용하여 구현할 수 있다

리스트과 달리 모든 데이터 타입으로 접근이 가능하며 시간단축에 효과적이다.

 

언제 써야할까?

1. String을 기반으로 정보를 기록하고 관리해야 될 때

예를 들어, 마라톤에 참가한 선수가 완주를 했는지 정보를 관리해야 할 때

선수 이름 : 완주 여부 => String Key : bool Value

 

2. 빠른 탐색이 필요할 때

리스트보다 해시가 빠르다. 시간단축해야하는 코테 문제에서 유용하다.

 

유용한 함수

1. 딕셔너리 선언

dict = {} # 빈 딕셔너리 선언

dict = {key:value}

 

2. 값 리턴

dict[key] # 해당 키에 대응하는 값 리턴, 없으면 keyError 발생

dict.get(key, x) # 해당 키에 대응하는 값 리턴, 없으면 x 리턴

 

3. 값 변경

dict[key1] = value1 # 딕셔너리에 키-값 추가, 이미 있는 값 변경도 가능

 

4. 키-값 삭제

del dict[key] # 해당 키-값 삭제, 없으면 keyError 발생

dict.pop(key,x) # 해당 키에 대응하는 값 리턴, 없으면 x 리턴

                        # get과 달리 dict에서 제거된다

 

5. 키만 또는 값만 따로 뽑기

dict..keys() # 키만

dict.values() # 값만

dict.items() # 둘 다

 

6. Iterate (for문 사용시)

for key in dict: # key로만 순회

for key, value in dict.items(): # key-value 동시 순회