Sobes.tech
Middle

Неге Python сөздүгүндө ачкычтар өзгөрүлбөс болушу керек жана өзгөрүлүүчү ачкычтарды колдонсо болобу?

sobes.tech AI

AIден жооп

Python сөздүгүнүн ачкычтары өзгөрүлбөс болушу керек, анткени сөздүк тез жетүү үчүн hashing колдонуп жатат. Эгер ачкыч өзгөрүлмө болсо, анын hash мааниси кошулгандан кийин өзгөрүшү мүмкүн, бул ошол ачкычты жана ага тиешелүү маанини табууну кыйындатат.

Мисалы, саптар, сандар жана өзгөрүлбөс элементтерден турган tuple-дер (tuple) ылайыктуу ачкычтар болуп саналат, анткени алардын hash мааниси өзгөрбөйт.

Өзгөрүлмө ачкычтарды (мисалы, тизмелер же сөздүктөр) колдонууга болбойт, анткени алардын туруктуу hash мааниси жок жана hash() методуна колдоо көрсөтпөйт. Өзгөрүлмө объектти ачкыч катары колдонуу TypeError катасын пайда кылат.

Мисал:

my_dict = {}
my_dict[[1, 2, 3]] = "value"  # TypeError: unhashable type: 'list'

Ошентип, ачкычтардын өзгөрүлбөстүгү сөздүктүн hash таблицасынын туура иштешин камсыздайт.