問題:
為什麼以下程式碼會引發「類型」: unhableunhable. : 'dict'" 錯誤?
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]) result=stopword_filtered_word_feats(negfeats)
答案:
發生錯誤是因為您嘗試使用字典作為創建的集合中的鍵通過 stopset 變數。但是,字典不是可哈希對象,這意味著它們不能用作集合或字典中的鍵。
解決方案:
要解決此問題,您可以將對凍結集合的否定功能中的字典是可散列的。以下程式碼顯示了修正後的版本:
negfeats = [(frozenset(word_feats(movie_reviews.words(fileids=[f])).items()), '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]) result=stopword_filtered_word_feats(negfeats)
以上是為什麼使用字典作為集合中的鍵會引發'TypeError: unhashable type: \'dict\'\”錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!