ホームページ  >  記事  >  バックエンド開発  >  ここでは、中心的な問題と解決策に焦点を当てた、いくつかのタイトルのオプションを示します。 直接的かつ有益: * TypeError: \"ハッシュ化できない型: \'dict\'\" - Python で辞書をハッシュ可能にする方法 * ピィ

ここでは、中心的な問題と解決策に焦点を当てた、いくつかのタイトルのオプションを示します。 直接的かつ有益: * TypeError: \"ハッシュ化できない型: \'dict\'\" - Python で辞書をハッシュ可能にする方法 * ピィ

DDD
DDDオリジナル
2024-10-26 11:29:02132ブラウズ

Here are a few title options, focusing on the core issue and solution:

Direct and Informative:

* TypeError:

TypeError: unhashable type: 'dict'

このエラーは、辞書を辞書内のキーとして使用しようとしていることを示しますまたはセットします。デフォルトでは、辞書はハッシュ化できないため、キーとして使用できません。

解決策:

この問題を解決するには、frozenset を使用して辞書をフリーズします。これにより、辞書のハッシュ可能な表現が作成されます。ハッシュ化できるのは不変オブジェクト (文字列、数値、タプルなど) のみであるため、不変性は重要です。

例:

次のコードを考えてみましょう:

<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>

この例では、ハッシュ可能性を確保するために、辞書の代わりにタプルを使用して negfeats リストが構築されています。さらに、stopword_filtered_word_feats 関数は、キーが凍結されたタプルのセットである、元のコードとは異なる辞書構造を返します。この構造はハッシュ可能であり、更新されたコードと互換性があります。

以上がここでは、中心的な問題と解決策に焦点を当てた、いくつかのタイトルのオプションを示します。 直接的かつ有益: * TypeError: \"ハッシュ化できない型: \'dict\'\" - Python で辞書をハッシュ可能にする方法 * ピィの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。