Maison > développement back-end > Tutoriel Python > Comment définir la valeur par défaut en utilisant defaultdict en Python ?

Comment définir la valeur par défaut en utilisant defaultdict en Python ?

WBOY
Libérer: 2023-04-26 17:07:09
avant
1338 Les gens l'ont consulté

Préface

Lors de la recherche d'une certaine valeur dans le dictionnaire, si la clé n'existe pas, une erreur keyerror sera renvoyée au lieu d'une valeur par défaut. renvoyer une valeur par défaut Vous pouvez utiliser la fonction defaultdict. Defaultdict est une sous-classe de la classe dict intégrée de Python. Elle a la même fonction que dict, mais elle a une valeur par défaut et renvoie une valeur par défaut si la valeur clé n'existe pas. defaultdict函数。 defaultdict是python内建dict类的一个字类,功能与dict相同,但它带有一个默认的值,若key值不存在时返回一个默认的值。

语法

dict =defaultdict( factory_function)
Copier après la connexion

defaultdict可以接受一个工厂函数作为参数,其中factory_function

Syntax

l=['A','B','C','D']
di={}

for i in l:
    print(i) # 'A
    di[i]+=1 # KeyError: 'A'

print(di)
Copier après la connexion

defaultdict peut accepter une fonction d'usine comme paramètre, où factory_function peut être a list , set, str, etc., la fonction consiste à renvoyer la valeur par défaut d'une fonction d'usine lorsque ket n'existe pas. Par exemple, list correspond à [ ], str correspond à la chaîne vide, set correspond à set(). , et int correspond à 0.

L'utilisation normale de dict est la suivante :

from collections import defaultdict
dict1 = defaultdict(int)
dict2 = defaultdict(set)
dict3 = defaultdict(str)
dict4 = defaultdict(list)
dict4[1] = 666
dict4[2] = 888
print(dict1[0]) # 0
print(dict2[0]) # set()
print(dict3[0]) # 
print(dict4[0]) # []
print(dict4[1]) # 666
print("*" * 30)
print(dict1) # defaultdict(<class &#39;int&#39;>, {0: 0})
print(dict2) # defaultdict(<class &#39;set&#39;>, {0: set()})
print(dict3) # defaultdict(<class &#39;str&#39;>, {0: &#39;&#39;})
print(dict4) # defaultdict(<class &#39;list&#39;>, {1: 666, 2: 888, 0: []})
Copier après la connexion

Utiliser defaultdict()

lst = [&#39;A&#39;, &#39;B&#39;, &#39;C&#39;, &#39;D&#39;, &#39;e&#39;]
dic = {}
 
for i in lst:
    dic.setdefault(i, 0)
    dic[i] += 1
print(dic)# {&#39;A&#39;: 1, &#39;B&#39;: 1, &#39;C&#39;: 1, &#39;D&#39;: 1, &#39;e&#39;: 1}
Copier après la connexion
#🎜🎜 #La différence entre setdefault() et defaultdict()

dict.setdefault() a deux paramètres, le premier est le paramètre, le second est la valeur par défaut#🎜 🎜## 🎜🎜#
dic1 = {"A": "a", "B": "b"}
x = dic1.get("E", "e")
print(x) # e
print(dic1) # {&#39;A&#39;: &#39;a&#39;, &#39;B&#39;: &#39;b&#39;}
 
dic2 = {"C": "c", "D": "d"}
y = dic2.setdefault("E", &#39;e&#39;)
print(y) # e
print(dic2) # {&#39;C&#39;: &#39;c&#39;, &#39;D&#39;: &#39;d&#39;, &#39;E&#39;: &#39;e&#39;}
Copier après la connexion

setdefault()

setdefault() est une méthode d'instance du dictionnaire, recevant deux paramètres. Son utilisation est similaire à la méthode get() du dictionnaire. , mais c'est mieux que la méthode get() Plus puissante. Les deux définissent une valeur par défaut pour la clé du dictionnaire.

La différence entre les deux est la suivante : la valeur par défaut définie par la méthode get ne modifiera pas le dictionnaire d'origine, tandis que la valeur par défaut définie par setdefault modifiera la valeur du dictionnaire d'origine.

Remarque : lors de l'utilisation de dict[key]=value, une erreur sera signalée si la clé n'existe pas ; lors de l'utilisation de dict.get(key), si la clé n'existe pas ; , une valeur par défaut sera renvoyée.

from collections import defaultdict
 
lst = [("A", "1"), ("B", "1"), ("A", "2"), ("B", "2"), ("A", "3"), ("B", "3")]
dic = defaultdict(list)
print(dic)
for key, value in lst:
    dic[key].append(value)
print(dic)
print(type(dic))
for key, value in dic.items():
    print(key, value)
Copier après la connexion
defaultdict()

defaultdict est une fonction d'usine sous le module collections, utilisée pour créer des objets de dictionnaire et reçoit un objet de fonction (appelable) comme paramètres. Quel est le type renvoyé par le paramètre et quel type est la valeur correspondant à la clé.

rrreeeComment définir la valeur par défaut en utilisant defaultdict en Python ?

#🎜🎜#

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!

Étiquettes associées:
source:yisu.com
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