Maison > développement back-end > Tutoriel Python > Dictionnaires Python : quand devez-vous utiliser « collections.defaultdict » ?

Dictionnaires Python : quand devez-vous utiliser « collections.defaultdict » ?

Patricia Arquette
Libérer: 2024-12-02 04:39:10
original
135 Les gens l'ont consulté

Python Dictionaries: When Should You Use `collections.defaultdict`?

Explorer la distinction : Collections.defaultdict vs. Ordinary Dict

En Python, le dictionnaire par défaut (collections.defaultdict) diffère d'un dictionnaire régulier d'une manière cruciale. Alors qu'un dict standard génère une KeyError lors de l'accès à une clé inexistante, un defaultdict crée automatiquement l'élément manquant en appelant une fonction spécifiée.

Comprendre les exemples

Voyons examinez les exemples fournis :

d = defaultdict(int)
Copier après la connexion

Ici, int() est la fonction par défaut, qui initialise le manquant clé avec une valeur entière (par défaut 0).

for k in s:
    d[k] += 1
Copier après la connexion

Cette boucle parcourt chaque caractère (k) de la chaîne s et incrémente son nombre correspondant stocké dans le defaultdict.

d.items()
dict_items([('m', 1), ('i', 4), ('s', 4), ('p', 2)])
Copier après la connexion

En conséquence, nous obtenons un dictionnaire avec les fréquences des caractères.

Dans le second exemple :

d = defaultdict(list)
Copier après la connexion

list() est la fonction par défaut, créant des listes vides par défaut pour les clés manquantes.

for k, v in s:
    d[k].append(v)
Copier après la connexion

Cette boucle associe les clés et les valeurs de la liste et ajoute valeurs à la liste des clés correspondantes.

d.items()
[('blue', [2, 4]), ('red', [1]), ('yellow', [1, 3])]
Copier après la connexion

Le résultat est un dictionnaire où les clés sont des couleurs et les valeurs sont des listes de leurs valeurs correspondantes de l'original. liste.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal