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)
defaultdict
可以接受一个工厂函数作为参数,其中factory_function
Syntaxl=['A','B','C','D'] di={} for i in l: print(i) # 'A di[i]+=1 # KeyError: 'A' print(di)Copier après la connexiondefaultdict
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 'int'>, {0: 0}) print(dict2) # defaultdict(<class 'set'>, {0: set()}) print(dict3) # defaultdict(<class 'str'>, {0: ''}) print(dict4) # defaultdict(<class 'list'>, {1: 666, 2: 888, 0: []})
#🎜🎜 #La différence entre setdefault() et defaultdict()lst = ['A', 'B', 'C', 'D', 'e'] dic = {} for i in lst: dic.setdefault(i, 0) dic[i] += 1 print(dic)# {'A': 1, 'B': 1, 'C': 1, 'D': 1, 'e': 1}Copier après la connexion
dic1 = {"A": "a", "B": "b"} x = dic1.get("E", "e") print(x) # e print(dic1) # {'A': 'a', 'B': 'b'} dic2 = {"C": "c", "D": "d"} y = dic2.setdefault("E", 'e') print(y) # e print(dic2) # {'C': 'c', 'D': 'd', 'E': 'e'}
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)
rrreee
#🎜🎜#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!