Wie lege ich den Standardwert mit defaultdict in Python fest?

WBOY
Freigeben: 2023-04-26 17:07:09
nach vorne
1314 Leute haben es durchsucht

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)
Nach dem Login kopieren

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

Syntax

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

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

print(di)
Nach dem Login kopieren

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: []})
Nach dem Login kopieren

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}
Nach dem Login kopieren

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;}
Nach dem Login kopieren

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)
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage