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
Libérer: 2024-10-26 11:29:02
original
140 Les gens l'ont consulté

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!