Ro'yxat xeshlangan Pythonmi?
Ro'yxat xeshlangan Pythonmi?

Video: Ro'yxat xeshlangan Pythonmi?

Video: Ro'yxat xeshlangan Pythonmi?
Video: Python! Which Objects Can Be Set as Dictionary Keys? 2024, May
Anonim

Hammasi Python o'zgarmas o'rnatilgan ob'ektlardir hash mumkin , o'zgaruvchan konteynerlar bo'lmasa ham (masalan ro'yxatlar yoki lug'atlar) mavjud. Foydalanuvchi tomonidan belgilangan sinflarning namunalari bo'lgan ob'ektlar hash mumkin avvalboshdan; ularning barchasi tengsiz solishtiradi va ularning xesh qiymati ularning id() dir.

Shunday qilib, Python-da kortejlar xeshlanishi mumkinmi?

10.1 Tuplar o'zgarmasdir a ichida saqlangan qiymatlar tuple har qanday turdagi bo'lishi mumkin va ular butun sonlar bilan indekslanadi. Muhim farq shundaki kortejlar o'zgarmasdir. Tuplar ham solishtirish mumkin va hash mumkin shuning uchun biz ularning ro'yxatini saralashimiz va foydalanishimiz mumkin kortejlar asosiy qadriyatlar sifatida Python lug'atlar.

biror narsa hashlangan bo'lishi nimani anglatadi? Ob'ekt hisoblanadi bo'lishini aytdi hash mumkin agar u ega hayoti davomida bir xil bo'lib qoladigan xesh qiymati. Objects which bor foydalanuvchi tomonidan belgilangan sinflar misollari zararlanishi mumkin avvalboshdan; ularning barchasi tengsiz (o'zlari bundan mustasno) va ularning xesh qiymatini solishtiradilar hisoblanadi Ularid() dan olingan.

Buni hisobga olsak, Unhashable Python nimani anglatadi?

Xato turi: zararsiz turi: odatda "ro'yxat" anglatadi ro'yxatni xesh argumenti sifatida ishlatishga harakat qilayotganingizni anglatadi bu siz hashga harakat qilganingizda zararsiz e'tiroz bildirish xatolikka olib keladi. Misol uchun. Ushbu muammoni hal qilishning standart usuli ro'yxatni kortejga o'tkazishdir.

Pythonda ro'yxatlar o'zgarmasmi?

Hammasi ichkarida Python ob'ekt hisoblanadi. Va hamma yangi kelganlar uchun Python tez o'rganish kerak, barcha ob'ektlarning Python o'zgaruvchan yoki bo'lishi mumkin o'zgarmas . O'rnatilgan turdagi ob'ektlar (int, float, bool, str, tuple, unicode) o'zgarmas . O'rnatilgan turdagi ob'ektlar ( ro'yxati , set, dict) oʻzgaruvchan.

Tavsiya: