Maison > développement back-end > Tutoriel Python > « defaultdict » vs « dict » régulier en Python : quand devriez-vous utiliser lequel ?

« defaultdict » vs « dict » régulier en Python : quand devriez-vous utiliser lequel ?

DDD
Libérer: 2024-12-07 16:36:12
original
691 Les gens l'ont consulté

`defaultdict` vs. Regular `dict` in Python: When Should You Use Which?

Collections.defaultdict vs Regular Dict : Comprendre la distinction

Contrairement aux dictionnaires Python conventionnels qui génèrent une KeyError pour les clés manquantes, le defaultdict propose une tournure unique. Il initialise automatiquement les clés inexistantes avec des valeurs par défaut, déterminées par un objet « appelable » défini par l'utilisateur. Pour comprendre pleinement ses fonctionnalités, examinons sa syntaxe et ses mécanismes.

Dans le premier exemple fourni dans la question :

>>> from collections import defaultdict

>>> s = 'mississippi'
>>> d = defaultdict(int)
>>> for k in s:
...     d[k] += 1
...
>>> d.items()
dict_items([('m', 1), ('i', 4), ('s', 4), ('p', 2)])
Copier après la connexion

Nous utilisons un defaultdict et spécifions int comme objet appelable. Au fur et à mesure que nous parcourons la chaîne s, le defaultdict crée automatiquement les clés manquantes en appelant int(). Cette fonction renvoie un objet entier initialisé à 0. Par conséquent, chaque lettre de s devient une clé dans le dictionnaire résultant d, leurs valeurs correspondantes étant leurs fréquences d'occurrence.

Dans le deuxième exemple :

>>> s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
>>> d = defaultdict(list)
>>> for k, v in s:
...     d[k].append(v)
...
>>> d.items()
[('blue', [2, 4]), ('red', [1]), ('yellow', [1, 3])]
Copier après la connexion

Nous utilisons à nouveau un defaultdict et transmettons la liste comme objet appelable. Cette fois, les clés inexistantes sont initialisées à l'aide de list(). Au fur et à mesure que nous parcourons la liste des tuples, le defaultdict garantit que chaque couleur unique est représentée comme une clé. Les valeurs correspondantes sont des listes qui stockent les fréquences d'apparition de chaque couleur.

En utilisant un defaultdict, nous pouvons facilement utiliser des dictionnaires avec des clés manquantes, évitant ainsi les exceptions potentielles de KeyError et simplifiant notre code.

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