Heim > Artikel > Backend-Entwicklung > Wie lege ich den Standardwert mit defaultdict in Python fest?
Wenn bei der Suche nach einem bestimmten Wert im Wörterbuch der Schlüssel nicht vorhanden ist, wird anstelle eines Standardwerts ein Schlüsselfehlerfehler zurückgegeben. Wenn Sie einen Standardwert zurückgeben möchten, können Sie den
verwenden defaultdict
-Funktion. Defaultdict ist eine Unterklasse der in Python integrierten Klasse dict. Sie hat die gleiche Funktion wie dict, verfügt jedoch über einen Standardwert und gibt einen Standardwert zurück, wenn der Schlüsselwert nicht vorhanden ist.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)defaultdict
kann eine Factory-Funktion als Parameter akzeptieren, wobeifactory_function
list, set, str usw. sein kann und seine Funktion when ket ist existiert nicht, gibt den Standardwert einer Factory-Funktion zurück, z. B. list entsprechend [], str entsprechend der leeren Zeichenfolge, set entsprechend set() und int entsprechend 0.
Die normale Verwendung von dict ist wie folgt:
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: []})Verwenden Sie defaultdict()
dict.setdefault() hat zwei Parameter, den ersten ist der Parameter. Der zweite ist der Standardwert.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}Der Unterschied zwischen der Methode setdefault() und defaultdict()
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'}
setdefault()
setdefault() ist eine Instanzmethode des Wörterbuchs, die zwei Parameter empfängt Sie ist leistungsfähiger als die get()-Methode. Beide legen einen Standardwert für den Wörterbuchschlüssel fest. Der Unterschied zwischen den beiden besteht darin, dass der von der get-Methode festgelegte Standardwert das ursprüngliche Wörterbuch nicht ändert, während der von setdefault festgelegte Standardwert den Wert des ursprünglichen Wörterbuchs ändert.
Hinweis: Bei Verwendung von dict[key]=value wird ein Fehler gemeldet, wenn der Schlüssel nicht vorhanden ist. Bei Verwendung von dict.get(key) wird ein Standardwert zurückgegeben, wenn der Schlüssel nicht vorhanden ist.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)
defaultdict()
defaultdict ist eine Factory-Funktion unter dem Collections-Modul. Sie wird zum Erstellen von Wörterbuchobjekten verwendet und empfängt ein Funktionsobjekt (aufrufbar) als Parameter. Welchen Typ gibt der Parameter zurück und welcher Typ ist der Wert, der dem Schlüssel entspricht. 🎜rrreee🎜🎜🎜Das obige ist der detaillierte Inhalt vonWie lege ich den Standardwert mit defaultdict in Python fest?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!