Najlepsza odpowiedź
Najpierw zrozumiemy, co można skasować, a co nie. Mówiąc prościej, określamy elementy, których wartości nie można zmienić jako haszowalne, a obiekty, których wartości można zmienić jako niemożliwe do zhasowania.
Na przykład w Pythonie wszystkie niezmienne obiekty można określić jako haszowalne, a obiekty zmienne można określić jako nierozłączne. Weźmy przykład, gdzie możemy uzyskać taki błąd i dlaczego go otrzymujemy.
Na przykład, gdy używasz listy jako klucza w słowniku Nie można tego zrobić i otrzymamy błąd TypeError: unhashable type.
Dzieje się tak, ponieważ listy nie mogą być zaszyfrowane i próbujemy użyć listy jako argumentu haszującego. oznacza, że jeśli spróbujesz zaszyfrować obiekt, którego nie można zhashować, wystąpi ten błąd. Standardowym sposobem rozwiązania tego problemu jest rzutowanie listy na krotkę.
A ponieważ krotki są niezmienne, a zatem mogą być hashowane, może działać.
Odpowiedź
dict = {a: 1}
Jego błąd typu show unhashable type in Python cmd on window.
Hashowalne znaczenie w Pythonie polega na tym, która wartość nigdy nie jest zmienna. A niemożliwa do zhaszowania jest przeciwieństwem Hashable. W Dictionary wartość można zaktualizować w dowolnym momencie, ale jeśli interpreter Pythona rozumie jego typ danych. W moim przykładzie dict = {a: 1} (key = a, value = 1) a jest typem danych typu string, ale tutaj nie jest przestrzegana reguła typu danych typu string, która jest zapisywana e umieszczanie znaków w cudzysłowie. Dlatego interpreter powiedział, że ta wartość typu danych jest niemożliwa do zhasowania (zmienna), ale typ danych jest źle rozumiany.