Maison > développement back-end > Tutoriel Python > Expliquer defaultdict en Python

Expliquer defaultdict en Python

Susan Sarandon
Libérer: 2024-12-17 12:24:26
original
748 Les gens l'ont consulté

Explaining defaultdict in Python

CAS D'UTILISATION

Le but de cette page ? est d'expliquer le concept et l'utilisation du defaultdict de Python à partir du module collections, en s'interrogeant spécifiquement sur le nom étrange. Il est inspiré de Advanced Python Mastery de David Baezley, voir ex_2_2 > Collections.

dict par défaut :

  • fournit une valeur par défaut pour les clés manquantes
  • évite KeyError en initialisant automatiquement les clés
  • est nommé pour son comportement par défaut d'initialisation des éléments
  • simplifie le code en évitant les vérifications et les insertions manuelles
  • seul un objet appelable (type ou fonction) est passé à initialiser
  • dans l'exemple donné, la liste est utilisée comme usine par défaut
  • ce qui signifie qu'il crée automatiquement une liste vide pour les clés manquantes
  • et facilite le regroupement efficace des données
  • peut également utiliser les fonctions lambda pour d'autres valeurs littérales par défaut
  • exemple : defaultdict(lambda : 0) renvoie 0 pour les clés manquantes

Exemple de code de maîtrise avancée de Python

portfolio
[{'name': 'AA', 'shares': 100, 'price': 32.2}, {'name': 'IBM', 'shares': 50, 'price': 91.1}, {'name': 'CAT', 'shares': 150, 'price': 83.44}, {'name': 'MSFT', 'shares': 200, 'price': 51.23}, {'name': 'GE', 'shares': 95, 'price': 40.37}, {'name': 'MSFT', 'shares': 50, 'price': 65.1}, {'name': 'IBM', 'shares': 100, 'price': 70.44}]
print("### DEFAULTDICT")
from collections import defaultdict

print("#### Group data, e.g. find all stocks with the same name")
byname = defaultdict(list)
for s in portfolio:
    byname[s["name"]].append(s)
byname

# defaultdict(<class 'list'>, {'AA': [{'name': 'AA', 'shares': 100, 'price': 32.2}], 'IBM': [{'name': 'IBM', 'shares': 50, 'price': 91.1}, {'name': 'IBM', 'shares': 100, 'price': 70.44}], 'CAT': [{'name': 'CAT', 'shares': 150, 'price': 83.44}], 'MSFT': [{'name': 'MSFT', 'shares': 200, 'price': 51.23}, {'name': 'MSFT', 'shares': 50, 'price': 65.1}], 'GE': [{'name': 'GE', 'shares': 95, 'price': 40.37}]})

print('#### Find all stocks with the name "IBM"')
byname["IBM"]
# >>> [{'name': 'IBM', 'shares': 50, 'price': 91.1}, {'name': 'IBM', 'shares': 100, 'price': 70.44}]
Copier après la connexion

Exemple avec Lambda :

from collections import defaultdict

byname = defaultdict(lambda: 0)
print(byname["missing_key"])  # This will return 0
Copier après la connexion

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