Python 사전(Dict)은 어떻게 저장 합 니까?

머리말
Python 사전 에는 여러 개의 이름("맵","해시","해시"또는"관계 배열")이 있 습 니 다.왜 사전 이 Hash("해시"또는"해시"로 번역 되 는 지 아 십 니까?
너 는 왜 사전 이 키(Key)의 저장 데이터 에 대한 요구 가 비교적 엄격 하지만,대응 하 는 값(Value)의 저장 에 대한 요 구 는 매우 느슨 한 지 아니?
이 글 을 다 읽 으 면 너 는 이 문제 들 뒤의 진상 을 깊이 이해 할 것 이다!
hash
우선 Hash 가 무엇 인지 설명 하 겠 습 니 다.위 키 백과 에서 왔 습 니 다.
해시 함수(또는 해시 알고리즘,해시 함수 라 고도 부 릅 니 다.영어:Hash Function)는 모든 데이터 에서 작은 숫자'지문'을 만 드 는 방법 입 니 다.해시 함 수 는 메시지 나 데 이 터 를 요약 으로 압축 하여 데이터 의 양 을 줄 이 고 데이터 의 형식 을 고정 시 킵 니 다.이 함 수 는 데 이 터 를 어 지 럽 히 고 혼합 하여 해시 값 이라는 지문 을 다시 만 듭 니 다.해시 값 은 보통 짧 은 무 작위 자모 와 숫자 로 구 성 된 문자열 을 대표 합 니 다.좋 은 해시 함 수 는 입력 필드 에서 해시 충돌 이 거의 일어나 지 않 습 니 다.산 목록 과 데이터 처리 에서 충돌 을 억제 하지 않 고 데 이 터 를 구별 하면 데이터 베이스 기록 을 찾기 가 더욱 어 려 울 것 이다.
세상 에는 똑 같은 나뭇잎 두 개 도 없고 똑 같은 지문 두 개 도 없다.해시 함 수 는 데이터 에서 작은 디지털 지문 을 만 드 는 방법 이다.
우 리 는 그림 을 보 았 다.

그림 에서 Python 은 내부 의 해시 함 수 를 호출 하여 키(Key)를 매개 변수 로 변환 하여 유일한 주 소 를 얻 습 니 다.(이것 은 같은 키 에 값 을 부여 하 는 이 유 를 설명 합 니 다.같은 키 로 변 환 된 주 소 는 똑 같 기 때 문 입 니 다)그리고 값(Value)을 이 주소 에 저장 합 니 다.
Python 에 있어 서 키(Key)는 반드시 코 하 쉬 여야 합 니 다.다시 말 하면 해시 함 수 를 통 해 유일한 주 소 를 계산 할 수 있어 야 합 니 다.그럼 변 수 를 키(Key)로 사용 하면 되 나 요?안 될 거 야.변 수 는 언제든지 변 할 수 있 기 때문에 코 하 쉬 원칙 에 부합 되 지 않 습 니 다!
마찬가지 로 목록,사전,집합 등 은 모두 가 변 적 이기 때문에 키(Key)로 사용 할 수 없습니다.
그럼 어떤 친구 가 물 어 볼 수도 있어 요.원 조 는 요?원 조 는 변 하지 않 겠 지?
그렇지 않 습 니 다.원조 안에 목록 과 같은 가 변 적 인 요 소 를 저장 할 수 있 기 때문에 원 조 를 사전 의 키(Key)로 사용 하려 면 원 조 를 제한 해 야 합 니 다.원 조 는 숫자 와 문자열 같은 가 변 적 이지 않 은 요소 만 포함 되 어 있 을 때 사전 에 효과 적 인 키(Key)로 사용 할 수 있 습 니 다.
또 주의해 야 할 점 은 파 이 썬 의 해시 알고리즘 이 같은 값 에 대해 계산 한 결과 가 같다 는 점 이다.즉,12315 와 12315.0 의 값 이 같 고 그들 은 같은 키(Key)로 여 겨 진 다 는 것 이다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기