Rumah > Artikel > pembangunan bahagian belakang > Berikut ialah beberapa pilihan tajuk, memfokuskan pada isu teras dan penyelesaian: Langsung dan Bermaklumat: * TypeError: \"unhashable type: \'dict\'\" - Cara Membuat Kamus Boleh Hashable dalam Python * Py
TypeError: unhashable type: 'dict'
Ralat ini menunjukkan bahawa anda sedang cuba menggunakan kamus sebagai kunci dalam kamus atau ditetapkan. Dicts, secara lalai, tidak boleh dicincang, dan oleh itu tidak boleh digunakan sebagai kunci.
Penyelesaian:
Untuk menyelesaikan isu ini, anda boleh membekukan kamus menggunakan frozenset, yang mencipta perwakilan kamus yang boleh dicincang. Ketidakbolehubah adalah kritikal kerana hanya objek tidak berubah (seperti rentetan, nombor dan tupel) boleh dicincang.
Contoh:
Pertimbangkan kod ini:
<code class="python">movie_reviews = ... negids = movie_reviews.fileids('neg') def word_feats(words): return dict([(word, True) for word in words]) # Constructing a list of tuples instead of dicts for hashability negfeats = [(word_feats(movie_reviews.words(fileids=[f])), 'neg') for f in negids] stopset = set(stopwords.words('english')) def stopword_filtered_word_feats(words): return dict([(word, True) for word in words if word not in stopset]) # Use frozenset to freeze the key (dict) of the nested dictionary result = {frozenset(key.items()): value for key, value in negfeats}</code>
Dalam contoh ini, senarai negfeats dibina dengan tupel dan bukannya kamus untuk memastikan hashability. Selain itu, fungsi stopword_filtered_word_feats mengembalikan struktur kamus yang berbeza daripada kod asal, di mana kuncinya ialah set tupel beku. Struktur ini boleh dicincang dan serasi dengan kod yang dikemas kini.
Atas ialah kandungan terperinci Berikut ialah beberapa pilihan tajuk, memfokuskan pada isu teras dan penyelesaian: Langsung dan Bermaklumat: * TypeError: \"unhashable type: \'dict\'\" - Cara Membuat Kamus Boleh Hashable dalam Python * Py. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!