Middle — Senior
Кадом сохтори додаҳо дар асоси dict дар Python қарор доранд? Чӣ гуна ҳал мешаванд коллизияҳо?
sobes.tech AI
Ҷавоб аз AI
Дар Python, dict дар асоси ҷадвали ҳеш бо истифода аз усули дари кушода бо ҳеши дукарата (open addressing with probing) амалӣ шудааст.
Мавзӯъҳои асосӣ:
- Калидҳо ҳеш мешаванд, то индекс дар массив гирифта шавад.
- Дар ҳолати коллизия (ҳангоми ду калид як индекс дошта бошанд), усули probing истифода мешавад, ки дар он ҷустуҷӯи ҳуҷраи озод дар асоси алгоритми муайян сурат мегирад.
- Аз Python 3.6+ истифодаи нусхаи мураттабшудаи луғат, ки тартиби воридшавиро нигоҳ медорад.
Масалан, ҳалли коллизияҳо метавонад probing хаттӣ ё ҳеши дукарата бошад, аммо дар CPython алгоритми бо қадамҳои тағйирёбанда барои probing истифода мешавад, то кластерсозиро кам кунад.
Ин дастрасӣ, ворид кардан ва тоза кардани унсурҳоро самаранок месозад.