Maison  >  Article  >  développement back-end  >  Voici quelques options de titre, axées sur le problème principal et la solution : Direct et informatif : * TypeError: \"unhashable type: \'dict\'\" - Comment rendre les dictionnaires hachables en Python *Py

Voici quelques options de titre, axées sur le problème principal et la solution : Direct et informatif : * TypeError: \"unhashable type: \'dict\'\" - Comment rendre les dictionnaires hachables en Python *Py

DDD
DDDoriginal
2024-10-26 11:29:02132parcourir

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

Direct and Informative:

* TypeError:

TypeError : type non hachable : 'dict'

Cette erreur indique que vous essayez d'utiliser un dictionnaire comme clé dans un dictionnaire ou réglé. Les dicts, par défaut, ne peuvent pas être hachés et ne peuvent donc pas être utilisés comme clés.

Solution :

Pour résoudre ce problème, vous pouvez geler le dictionnaire à l'aide de Frozenset, qui crée une représentation hachable du dictionnaire. L'immuabilité est essentielle car seuls les objets immuables (comme les chaînes, les nombres et les tuples) peuvent être hachés.

Exemple :

Considérez ce code :

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

Dans cet exemple, la liste negfeats est construite avec des tuples au lieu de dictionnaires pour garantir la hachabilité. De plus, la fonction stopword_filtered_word_feats renvoie une structure de dictionnaire différente de celle du code d'origine, où les clés sont des ensembles de tuples gelés. Cette structure est hachable et compatible avec le code mis à jour.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn