logo

Défautdict en Python

Le dictionnaire est une collection non ordonnée de valeurs de données en Python utilisée pour stocker des valeurs de données telles que des cartes. Le dictionnaire contient des paires clé-valeur au lieu de contenir une seule valeur en tant qu'élément comme les autres types de données. La clé implémentée dans le dictionnaire doit être unique et immuable. Autrement dit, le tuple Python peut être une clé, mais la liste Python ne peut pas être une clé dans le dictionnaire. Nous pouvons créer un dictionnaire en plaçant une séquence d'éléments entre les accolades {}, une virgule ',' peut séparer les valeurs.

Exemple 1:

 Dict_1 = {1: 'A', 2: 'B', 3: 'C', 4: 'D'} print ('Dictionary: ') print (Dict_1) print ('key pair 1: ', Dict_1[1]) print ('key pair 3: ', Dict_1[3]) 

Sortir:

 Dictionary: {1: 'A', 2: 'B', 3: 'C', 4: 'D'} key pair 1: A key pair 3: C 

Mais si nous essayons d'imprimer la 5ème valeur clé, nous obtiendrons l'erreur car 'Dict_1' ne contient pas la 5ème valeur clé.

supprimer le dernier caractère de la chaîne

Exemple 2 :

 Dict_1 = {1: 'A', 2: 'B', 3: 'C', 4: 'D'} print ('Dictionary: ') print (Dict_1) print ('key pair 5: ', Dict_1[5]) 

Sortir:

 Dictionary: {1: 'A', 2: 'B', 3: 'C', 4: 'D'} --------------------------------------------------------------------------- KeyError Traceback (most recent call last) in 2 print ('Dictionary: ') 3 print (Dict_1) ----> 4 print ('key pair 5: ', Dict_1[5]) KeyError: 5 

Chaque fois que le erreur de clé est soulevée, cela peut devenir un problème pour les utilisateurs. Nous pouvons surmonter cette erreur en utilisant un autre dictionnaire Python, qui ressemble à un conteneur appelé Défautdict . Les utilisateurs peuvent trouver ce dictionnaire dans le 'recueils' module.

dict par défaut

Le defaultdict est un dictionnaire de Python, qui ressemble à un conteneur présent à l'intérieur du module 'collections'. Il s'agit d'une sous-classe de la classe dictionnaire qui est utilisée pour renvoyer l'objet de type dictionnaire. defaultdict et le dictionnaire ont la même fonctionnalité, sauf que defaultdict ne génère jamais de KeyError car il fournit une valeur par défaut pour la clé, qui n'existe pas dans le dictionnaire créé par l'utilisateur.

Syntaxe:

 defaultdict(default_factory) 

Paramètres:

    usine_par défaut :La fonction default_factory() renvoie la valeur par défaut définie par l'utilisateur pour le dictionnaire défini par lui. Si cet argument est absent, alors le dictionnaire générera la KeyError.

Exemple:

supprimer le fichier en java
 from collections import defaultdict as DD # Function for returning a default values for the # keys which are not present in the dictionary def default_value(): return 'This key is not present' # Now, we will define the dict dict_1 = DD(default_value) dict_1['ABC'] = 1 dict_1['DEF'] = 2 dict_1['GHI'] = 3 dict_1['JKL'] = 4 print ('Dictionary: ') print (dict_1) print ('key pair 1: ', dict_1['ABC']) print ('key pair 3: ', dict_1['GHI']) print ('key pair 5: ', dict_1['MNO']) 

Sortir:

 Dictionary: defaultdict(, {'ABC': 1, 'DEF': 2, 'GHI': 3, 'JKL': 4}) key pair 1: 1 key pair 3: 3 key pair 5: This key is not present 

Fonctionnement interne de defaultdict

Lorsque nous utilisons defaultdict, nous obtenons une variable d'instance inscriptible supplémentaire et une méthode en plus des opérations de dictionnaire standard. La variable d'instance inscriptible est le paramètre default_factory et __manquant__ est la méthode.

    usine_par défaut :La fonction default_factory() renvoie la valeur par défaut définie par l'utilisateur pour le dictionnaire défini par lui.

Exemple:

 from collections import defaultdict as DD dict_1 = DD(lambda: 'This key is not present') dict_1['ABC'] = 1 dict_1['DEF'] = 2 dict_1['GHI'] = 3 dict_1['JKL'] = 4 print ('Dictionary: ') print (dict_1) print ('key value 1: ', dict_1['ABC']) print ('key value 3: ', dict_1['GHI']) print ('key value 5: ', dict_1['MNO']) 

Sortir:

 Dictionary: defaultdict(<function at 0x0000019efc4b58b0>, {&apos;ABC&apos;: 1, &apos;DEF&apos;: 2, &apos;GHI&apos;: 3, &apos;JKL&apos;: 4}) key value 1: 1 key value 3: 3 key value 5: This key is not present </function>
    __manquant__():La fonction __missing__() est utilisée pour fournir la valeur par défaut au dictionnaire. La fonction __missing__() prend default_factory comme argument, et si l'argument est défini sur None, une KeyError sera déclenchée ; sinon, il fournira une valeur par défaut pour la clé donnée. Cette méthode est essentiellement appelée par le __obtenir l'article__() fonction de la classe dict lorsque la clé demandée n'est pas trouvée. La fonction __getitem__() augmente ou renvoie la valeur présente dans la fonction __missing__().

Exemple:

 from collections import defaultdict as DD dict_1 = DD(lambda: &apos;This key is not present&apos;) dict_1[&apos;ABC&apos;] = 1 dict_1[&apos;DEF&apos;] = 2 dict_1[&apos;GHI&apos;] = 3 dict_1[&apos;JKL&apos;] = 4 print (&apos;Dictionary: &apos;) print (dict_1) print (&apos;key value 1: &apos;, dict_1.__missing__(&apos;ABC&apos;)) print (&apos;key value 4: &apos;, dict_1[&apos;JKL&apos;]) print (&apos;key value 5: &apos;, dict_1.__missing__(&apos;MNO&apos;)) 

Sortir:

jquery un clic
 Dictionary: defaultdict(<function at 0x0000019efc4b5670>, {&apos;ABC&apos;: 1, &apos;DEF&apos;: 2, &apos;GHI&apos;: 3, &apos;JKL&apos;: 4}) key value 1: This key is not present key value 4: 4 key value 5: This key is not present </function>

Comment utiliser « Liste » comme default_factory

Nous pouvons transmettre une classe de liste comme argument default_factory, et cela créera un defaultdict avec les valeurs définies au format liste.

Exemple:

 from collections import defaultdict as DD # Defining a dictionary dict_1 = DD(list) for k in range(7, 12): dict_1[k].append(k) print (&apos;Dictionary with values as list:&apos;) print (dict_1) 

Sortir:

 Dictionary with values as list: defaultdict(, {7: [7], 8: [8], 9: [9], 10: [10], 11: [11]}) 

Comment utiliser 'int' comme default_factory

Nous pouvons passer la classe int comme argument default_factory, et cela créera un defaultdict avec la valeur par défaut définie sur zéro.

Exemple:

 from collections import defaultdict as DD # Defining the dict dict_1 = DD(int) J = [1, 2, 3, 4, 2, 4, 1, 2] # Now, we will iterate through the list &apos;J&apos; # for keeping the count for k in J: # As, The default value is 0 # so we do not need to # enter the key first dict_1[k] += 1 print(dict_1) 

Sortir:

 defaultdict(, {1: 2, 2: 3, 3: 1, 4: 2}) 

Conclusion

Dans ce didacticiel, nous avons discuté de defaultdict en Python et de la manière dont nous pouvons effectuer différentes opérations sur defaultdict en utilisant le paramètre default_factory.