저는 항상 사전을 사용했습니다. 나는 파이썬으로 글을 쓴다.사전과 해시 테이블의 실제 차이점은 무엇입니까?
답변
사전은 키를 값에 매핑하는 일반적인 개념입니다. 이러한 매핑을 구현하는 방법은 여러 가지가 있습니다.
해시 테이블은 사전을 구현하는 특정 방법입니다.
해시 테이블 외에 사전을 구현하는 또 다른 일반적인 방법은 red-black trees입니다.
각 방법마다 장단점이 있습니다. 빨강 - 검정 나무는 항상 O (로그 N)에서 검색을 수행 할 수 있습니다. 해시 테이블은 입력에 따라 O (N)로 저하 될 수 있지만 O (1) 시간에서 조회를 수행 할 수 있습니다.
파이썬 사전은 내부적으로 해시 테이블로 구현됩니다.
dict의 하위 클래스는 사전의 Python 구현이 아닙니다. 그것은 당신 자신의 것입니다. –
사전은 키를 값에 매핑하는 데이터 구조입니다.
해시 테이블은 키의 해시 값을 가져 와서 해시 함수를 적용하여 하나 이상의 값이 저장되는 버킷에 매핑하여 데이터를 값으로 매핑하는 데이터 구조입니다.
IMO 이것은 목록과 연결된 목록 간의 차이점을 묻는 것과 유사합니다.
명확성을 위해 파이썬이 현재 해시 테이블을 사용하여 사전을 구현하는 경우가있을 수 있으며 사전에 사전을 중지하지 않고 파이썬이 사실을 변경하는 경우가있을 수 있습니다 .
사전이 키를 저장한다는 주된 차이점이 있습니까? 그래서 당신은 elsit의 키에 대해서 사전을 질의 할 수 있습니다 - 당신은 해쉬 테이블이 될 수 없습니다. –
@Martin Beckett : Nope. 둘 다 키를 저장할 수 있습니다. 사전은 일반적입니다. 해시 테이블은 일반적인 개념의 특정 구현입니다. –
@Martin Beckett : 흠, 흥미로운 점. 사전이 키를 저장하고 해시 테이블이 저장하지 않는 경우가 있습니까? 자바의'Hashtable'은 키를 저장합니다 - 해쉬 테이블이 아닌가요? – danben
"사전"은 wikipedia과 같이 프로그래밍에서 몇 가지 다른 의미를 지닙니다. "연관 배열"은 파이썬이 용어 ("매핑"이라고도 함)를 사용한다는 의미 중 하나입니다. 의미 (그러나 "데이터 사전"및 암호 추측 시도의 "사전 공격"도 중요합니다).
해시 테이블은 중요한 데이터 구조입니다. 파이썬은 이들을 사용하여 중요한 내장 데이터 유형 인 dict
과 set
을 구현합니다.
그래서, 심지어 파이썬에서, 당신은 "사전"에 대한 동의어 ... 유사한 데이터 구조부터도 "세트"를 구현하는 데 사용됩니다로 "해시 테이블"을 고려하지 않을 수 있습니다 -!)
사전은 해시 테이블을 사용하여 구현됩니다. 제 생각에는 2의 차이점은 스택을 구현하기 위해 배열을 사용하는 스택과 배열의 차이로 생각할 수 있습니다.
해시 테이블은 항상 값에서 작동하는 일부 기능을 사용하여 값이 저장 될 위치를 결정합니다. 사전 (나는 당신이 그것을 의도한다고 믿는다)은 좀 더 일반적인 용어이며 단순히 해시 테이블 일 수도 있고 저장 위치를 결정할 때 값 자체를 고려하지 않는 간단한 구조로 구현 될 수도있는 조회 메커니즘을 나타냅니다.
- 1. 사전과 dictionaryWithCapacity의 차이점은 무엇입니까?
- 2. 해시지도, 해시 집합, 해시 사전의 차이점은 무엇입니까?
- 3. 원본 테이블의 isnull과 임시 테이블의 차이점은 무엇입니까?
- 4. RTMFP와 BitTorrent의 실제 차이점은 무엇입니까?
- 5. json 사전과 해시의 차이점
- 6. 해시 테이블의 크기를 조정할 수있는 알고리즘은 무엇입니까?
- 7. 해시 테이블의 용도는 무엇입니까? asp.net C#
- 8. C++ STL의 집합과 해시 집합의 차이점은 무엇입니까?
- 9. 해시 테이블의 타임 아웃 메커니즘
- 10. Lucene 2.9의 INDEX.TOKENIZER와 INDEX.ANALYZER의 실제 차이점은 무엇입니까?
- 11. Response.Write와 <%= %>의 실제 차이점은 무엇입니까?
- 12. SI 레지스터와 DI 레지스터의 실제 차이점은 무엇입니까?
- 13. MXML과 ActionScript for Mobile의 실제 차이점은 무엇입니까?
- 14. tcl의 upvar와 global 명령의 실제 차이점은 무엇입니까
- 15. 데이터 뷰와 데이터 테이블의 차이점은 무엇입니까?
- 16. 이 두 유형의 테이블의 차이점은 무엇입니까? (#와 @)
- 17. 반복에서 해시 테이블의 요소를 제거하십시오.
- 18. 알파벳 - 사전과 생각하는 SQL
- 19. 파이썬 사전과 XML을/
- 20. 파이썬 사전과 장고
- 21. 스파 스 해시 테이블의 주요 구현 아이디어는 무엇입니까?
- 22. 해시 테이블의 값을 기준으로 정렬 - Ruby
- 23. Vista Home Premium과 Ultimate 사이의 실제 일별 운영상의 차이점은 무엇입니까?
- 24. Jdbc의 type2와 type 4 드라이버 사이의 실제 차이점은 무엇입니까
- 25. VirtualizingStackPanel의 VirtualizationMode 속성의 재활용/표준 간의 실제 차이점은 무엇입니까?
- 26. 프로젝트 설정 : 응용 프로그램 범위와 사용자 범위의 실제 차이점은 무엇입니까?
- 27. 사전과 같은 것을 디자인하면서 데이터 구조를 권장합니까?
- 28. SQL 2008의 Wide 테이블과 Nonwide 테이블의 차이점은 무엇입니까?
- 29. PHP에서 Array와 Hash의 차이점은 무엇입니까?
- 30. hash_map과 unordered_map의 차이점은 무엇입니까?
나는 이것을 한 번 이상 투표 할 수 있으면 좋겠다. – LJM
나는 당신을 위해 그것을 다시 upvote거야. –