Comment les clés manquantes sont-elles gérées dans des dictionnaires Python?
Les données sont stockées sous forme de paires de valeurs clés dans des dictionnaires Python qui sont des structures de données importantes. Parce que chaque clé des dictionnaires correspond à une valeur, ils sont appelés tableaux associatifs. Nous pouvons récupérer directement la valeur d'une clé à partir d'un dictionnaire Python en entourant la clé à des crochets. Examinons comment obtenir la valeur d'une clé à partir d'un dictionnaire dans Python:
Et si nous essayons d'accéder à la clé d'un dictionnaire qui n'est pas présent ou n'existe pas?
Comme nous pouvons le voir, une principaleurror est élevée lorsque nous essayons d'accéder à une clé de dictionnaire qui n'existe pas. Si l'erreur n'est pas résolue, notre programme se bloquera. Python propose une variété d'options pour éviter cela, mais l'utilisation de la par défaut est la meilleure solution pour cela. Il fournit une méthode claire et sécurisée pour fournir des valeurs par défaut spécifiées pour toute clé qui n'existe pas sans avoir besoin de le créer initialement.
Qu'est-ce que le défaut de défaut dans Python?
Un module qui fournit des types de conteneurs spécialisés est appelé collection et est disponible dans la bibliothèque standard Python. Le type de défaut en est l'un d'eux; C'est une classe du type de dict qui a été créée spécialement pour vous aider à manquer les clés. Python DefaultDict Le type dérive du dict:
Le code donné démontre que le type par défaut de python est une sous-classe du dict. Cela implique qu'il a beaucoup des mêmes caractéristiques que la classe de dictionnaire tout en modifiant et en étendant certaines de ses fonctionnalités.
Voici les modifications importantes de la classe de dictionnaire:
En général, le par défaut propose des méthodes pour donner aux dictionnaires les valeurs par défaut en l'absence d'une clé. Toute appelable acceptable (comme int, liste, etc.) ou aucun ne peut être transmis au «.Default_factory ”appelant. Chaque fois que nous essayons d'accéder ou de modifier la valeur correspondant à une clé manquante, DefaultDict appelle automatiquement un appelable s'il est fourni.
Une introduction à la classe de défaut dedict dans Python et comment elle diffère d'un dictionnaire Python standard est couverte dans cette section. Maintenant, nous utiliserons ces objets dans la section suivante pour améliorer vos capacités pour utiliser les dictionnaires et gérer les données manquantes.
Comment pouvons-nous créer un défaut de défaut?
Cette section vous apprend à utiliser le module de collections de Python pour créer un objet par défaut. Nous pouvons simplement importer le module car ce module est inclus dans la bibliothèque standard de Python. Explorons comment nous pouvons créer un défaut de défaut:
Ici, un défaut est créé avec le nom, «Defdict». Nous devons fournir un appelable valide pour générer le dictionnaire avec succès. Ces callables fournissent des méthodes pour produire de nombreux types d'objets, y compris les chiffres, les listes, etc. Au lieu d'utiliser la fonction, nous devons utiliser le callable.
Lors de la création du dictionnaire dans ce cas, nous passons la liste au «.usine par défaut ». Le défdict est ensuite utilisé de la même manière qu'un dictionnaire standard. Notez que le dictionnaire attribue la valeur par défaut qui obtient l'appel de la liste () lorsque vous essayez d'accéder ou de mettre à jour la valeur qui est mappée à une clé qui n'existe pas.
N'appelez pas le default_factory à l'aide de parenthèses au moment de l'initialisation, car un objet appelable Python valide doit être passé.
Gestion des touches manquantes en utilisant le défaut de défaut
Cette section vous apprend à utiliser le par défaut de Python pour gérer les clés manquantes. Nous savons déjà que vous devez spécifier un type de valeur par défaut lors de la création d'un nouveau par défaut. Cela nous permet de gérer les données manquantes lorsque vous essayez d'accéder à une clé qui n'est pas présente ou n'existe pas. Jetons un coup d'œil à ce qui suit:
D'après l'exemple donné, il est clair que nous réussissons à accéder à une clé qui n'existait pas et qu'une valeur «0» est renvoyée.
Compter les éléments de la liste à l'aide du défaut de défaut
Le comptage efficace des éléments / objets dans une itérable et le renvoi des comptes dans un dictionnaire sont deux applications créatives pour l'objet par défaut. Voyons comment nous pouvons y parvenir en utilisant le dictionnaire standard de Python avant de savoir comment le faire avec l'objet par défaut.
L'instruction IF-Else est utilisée dans le code donné pour tenir compte de la possibilité que la clé soit absente de notre dictionnaire.
En utilisant le par défaut, nous pouvons simplifier cela. Même si nos clés n'existaient pas auparavant, nous pouvons les incrémenter en toute sécurité et créer un entier comme clé par défaut.
Ici, nous avons créé un objet defaultDict en créant un appelable et en passant une valeur entière. Par conséquent, la valeur reçoit une valeur de 0 si une clé manque. À cause de cela, nous pouvons augmenter en toute sécurité la valeur d'une clé de 1 lorsque nous rencontrons un qui n'existe pas.
Regrouper les données avec DefaultDict
L'objet par défaut peut être utilisé pour regrouper les données en fonction d'autres structures de données. Avec cela, nous itons sur les objets (comme une liste contenant des tuples, une collection de listes ou un autre dictionnaire) pour regrouper les données.
Regardons un exemple. Nous pourrions faire un dictionnaire avec nos cours en tant que clés et les noms des étudiants inscrits à chaque cours en tant que liste si nous avons un dictionnaire des noms des étudiants et les cours qu'ils étudient.
Voyons comment faire cela en utilisant d'abord un dictionnaire Python standard. Ensuite, nous implémentons cela en utilisant le par défaut.
C'est un peu compliqué, comme nous pouvons le voir. Heureusement, le défaut de défaut simplifie considérablement cela. Nous pouvons éliminer l'instruction IF-ELSE en définissant une valeur par défaut en tant que liste vide.
Nous pouvons observer à quel point il est plus simple pour comprendre cet exemple car nous n'avons pas à nous soucier de la gestion des erreurs. Lorsqu'une clé manque, notre défaut de défaut crée toujours une liste vide. En conséquence, l'ajout à la valeur de la clé est simple et nous n'avons pas à nous soucier de l'élever les principales directeurs.
Accumuler les données en utilisant le défaut de défaut
Nous accumuons maintenant les données à l'aide de Python par défaut de Python. Il y a des cas où vous avez besoin de déterminer la somme totale des valeurs / données d'une collection ou d'une séquence. Supposons que vous ayez les données sur les articles vendus dans un magasin. Stockons d'abord les données comme une liste d'objets Tuple:
Nous pouvons déterminer les ventes totales pour chaque produit en utilisant ces données. Nous pouvons accomplir cela en utilisant le défaut par défaut avec l'ensemble de flottement comme «usine par défaut».
Pour itérer sur les éléments, nous avons construit une boucle pour. Les ventes par élément de dictionnaire sont calculées à l'aide d'un opérateur d'affectation augmenté (+ =). La deuxième boucle imprime les ventes après avoir itérant les articles DeFdict.
Conclusion
Les informations nécessaires sur l'objet par défaut de Python et comment vous pouvez l'utiliser étaient comme couverts dans ce tutoriel. Vous avez d'abord appris le comportement des dictionnaires Python lorsque les clés sont manquantes. Ensuite, vous avez appris à spécifier les valeurs par défaut en utilisant le python defaultDict. Nous avons discuté de la façon dont les clés manquantes peuvent être gérées à l'aide de défaut. Nous avons appris que l'objet par défaut peut être utilisé pour agréger, accumuler et compter les données.