Heim  >  Artikel  >  Backend-Entwicklung  >  Wie lege ich den Standardwert mit defaultdict in Python fest?

Wie lege ich den Standardwert mit defaultdict in Python fest?

WBOY
WBOYnach vorne
2023-04-26 17:07:091304Durchsuche

Vorwort

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

Syntax

l=['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, wobei factory_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 &#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: []})

Verwenden Sie 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}

Der Unterschied zwischen der Methode setdefault() und defaultdict()

dict.setdefault() hat zwei Parameter, den ersten ist der Parameter. Der zweite ist der Standardwert.

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;}

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()Wie lege ich den Standardwert mit defaultdict in Python fest?

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen