TypeError: unhashable type: ’list’
TypeError: unhashable type: ’list’ tarkoittaa yleensä sitä, että yrität käyttää listaa hash-argumenttina. Tämä tarkoittaa, että kun yrität hash unhashable objekti se johtaa virhe. Exälle. kun käytät listaa avaimena sanakirjassa, tätä ei voi tehdä, koska luetteloita ei voi hashata. Vakio tapa ratkaista tämä ongelma on heittää listan tuple .
esimerkki
output
tämä virhe osoittaa, että my_dict-avain on List ja List ei ole Pythonissa hajautettu tyyppi . Sanakirjan avainten tulee olla muuttumattomia tyyppejä ja lista on muunneltavissa oleva tyyppi.
Fix: Cast list to a tuple
sinun täytyy muuttaa listasi tupleiksi, jos haluat laittaa ne avaimiksi sanakirjaasi .
lähtö
hash () on sisäänrakennettu python-menetelmä, jota käytetään yksittäisen numeron palauttamiseen . Tätä voidaan soveltaa mihin tahansa käyttäjän määrittelemään objektiin, joka ei muutu alustuksen jälkeen. Tätä ominaisuutta käytetään pääasiassa sanakirjanäppäimissä .
esimerkkejä Unhashable objects:
Tuple ja luettelo
vaikka tuplet voivat vaikuttaa samanlaisilta kuin luettelot, niitä käytetään usein eri tilanteissa ja eri tarkoituksiin. Tuples ovat muuttumattomia, ja yleensä sisältävät heterogeeninen sekvenssi elementtejä, jotka ovat käytettävissä purkamalla tai indeksoimalla . Luettelot ovat muunneltavissa, ja niiden elementit ovat yleensä homogeenisia ja niihin päästään iteroimalla listan yli.
Hashing
Hashing on tietojenkäsittelytieteessä käsite , jonka avulla luodaan korkean suorituskyvyn pseudo-satunnaiskäyttöisiä tietorakenteita, joissa suuri määrä dataa on tarkoitus tallentaa ja käyttää nopeasti. Muuttumattomat esineet, tai esineet, joita ei voi muuttaa, ovat hashable ja niillä on yksi ainutlaatuinen arvo, joka ei koskaan muutu. Tiivistysfunktio on funktio, joka ottaa objektin, vaikkapa merkkijonon kuten ”Java” ja palauttaa kiinteän kokoisen koodin, oletetaan palautusarvon olevan kokonaisluku .