Тизме хэштелуучу Pythonбу?
Тизме хэштелуучу Pythonбу?

Video: Тизме хэштелуучу Pythonбу?

Video: Тизме хэштелуучу Pythonбу?
Video: Хэш хүснэгт ба хэш функцууд 2024, Ноябрь
Anonim

Бардык Python's өзгөрүлгүс курулган объектилер болуп саналат hashable , өзгөрүлүүчү контейнерлер жок болсо да (мисалы тизмелер же сөздүктөр) болуп саналат. Колдонуучу аныктаган класстардын мисалдары болгон объекттер hashable демейки боюнча; алардын бардыгы тең эмес салыштырышат жана алардын хэш мааниси id() болуп саналат.

Ошентип, Pythonдо кортеждер хэштелетби?

10.1 Tuples өзгөрүлгүс. а ичинде сакталган баалуулуктар кортеж ар кандай түрү болушу мүмкүн жана алар бүтүн сандар менен индекстелет. Маанилүү айырмасы ушунда кортеждер өзгөрүлгүс болуп саналат. Tuples да салыштырууга болот жана hashable ошондуктан биз алардын тизмелерин иреттеп, колдоно алабыз кортеждер негизги баалуулуктар катары Python сөздүктөр.

бир нерсенин хэш болушу эмнени билдирет? Объект болуп саналат деп айтты hashable эгерде ал бар өмүр бою өзгөрүүсүз кала турган хэш мааниси. Объекттер кайсы болуп саналат колдонуучу аныктаган класстардын учурлары зыяндуу демейки боюнча; алардын бардыгы тең эмес (өздөрүн кошпогондо) жана алардын хэш маанисин салыштырышат болуп саналат theirid()ден алынган.

Муну эске алганда, Unhashable Python деген эмнени билдирет?

TypeError: жараксыз түрү: адатта "тизме" билдирет сиз тизмени хэш аргументи катары колдонууга аракет кылып жатканыңыз. Бул билдирет сиз хэш кылууга аракет кылганыңызда жараксыз каршы болсо, анда ката пайда болот. Мисалы үчүн. Бул маселени чечүүнүн стандарттуу жолу - тизмени кортежге чыгаруу.

Pythonдо тизмелер өзгөрүлбөйбү?

Баары ичинде Python объект болуп саналат. Жана ар бир жаңы келген Python тез үйрөнүшү керек, бул бардык объекттер Python өзгөрүлүүчү же болушу мүмкүн өзгөрүлгүс . (int, float, bool, str, tuple, unicode) сыяктуу орнотулган типтердин объекттери өзгөрүлгүс . сыяктуу орнотулган типтеги объекттер ( тизме , топтом, дикт) өзгөрмөлүү.

Сунушталууда: