Maison >développement back-end >Tutoriel Python >En quoi le « collections.defaultdict » de Python diffère-t-il d'un dictionnaire standard ?

En quoi le « collections.defaultdict » de Python diffère-t-il d'un dictionnaire standard ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-29 06:35:13873parcourir

How Does Python's `collections.defaultdict` Differ from a Standard Dictionary?

Comprendre la différence entre Collections.defaultdict et les dictionnaires normaux

Les dictionnaires traditionnels en Python déclenchent une exception KeyError lorsque vous tentez de récupérer une valeur associée avec une clé qui n'est pas actuellement définie dans le dictionnaire. Cependant, la classe Collections.defaultdict offre une fonctionnalité unique qui vous permet de gérer avec élégance les clés inexistantes. Son constructeur accepte un appelable qui définit comment créer une nouvelle valeur par défaut lors du premier accès à une clé.

Dans les exemples fournis, le premier defaultdict est initialisé avec int comme appelable. Cela signifie que chaque fois que l'on accède à une clé qui n'existe pas dans le dictionnaire, int() sera appelé pour créer une valeur par défaut de 0. Cet exemple montre comment compter les occurrences de caractères dans une chaîne en utilisant cette technique.

Le deuxième defaultdict est initialisé avec list comme appelable. Lors de l'accès à une clé inexistante, une liste vide est créée comme valeur par défaut. Cet exemple illustre comment regrouper des paires clé-valeur dans des listes basées sur des clés partagées.

Pour résumer, un defaultdict fournit un mécanisme pratique pour créer et initialiser des valeurs par défaut pour les clés qui n'existent pas dans le dictionnaire. En spécifiant un appelable lors de l'initialisation, vous pouvez définir les règles qui régissent la façon dont ces valeurs par défaut sont créées, comme les initialiser à 0 ou à une liste vide comme dans les exemples fournis.

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