Ich werde es bald vergessen, also mach dir eine Notiz.
Beim Abrufen eines Werts von einer dict
-Instanz mit einem Schlüssel
Wenn Sie darüber nachdenken, ist es gut, die Methode "get" zu verwenden.
>>> d = {"a": 1, "b": 2}
>>> d["c"]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'c'
>>> d.get("c") #Keine wird zurückgegeben, wenn keine Standardeinstellung angegeben ist
>>> d.get("c", 3) #Wenn der Standardwert angegeben ist, wird dieser Wert zurückgegeben.
3
>>>
Das Schöne ist, dass Sie "get (key [, default])" und den Standardwert angeben können.
Mit get
können Sie also ganz einfach Folgendes schreiben.
>>> c = d["c"] if "c" in d else 3
>>> c
3
>>> c = d["c"] if d.has_key("c") else 3
>>> c
3
#Die oben genannten Leute können ordentlich mit der Standardspezifikation von get schreiben
>>> c = d.get("c", 3)
>>> c
3
Darüber hinaus kann die folgende Verarbeitung, die zum sauberen Schreiben mit "defaultdict" importiert wurde, auch mit "get" geschrieben werden. Es ist jedoch besser, "defaultdict" zu verwenden. Wenn Sie also die Lesbarkeit verbessern möchten, sollten Sie "defaultdict" verwenden.
>>> from collections import defaultdict
>>> dd = defaultdict(int, d)
>>> dd
defaultdict(<type 'int'>, {'a': 1, 'b': 2})
>>> dd["c"] += 1 #Zu einem Schlüssel, der nicht existiert+=Selbst wenn 1 gesetzt ist und der Standardwert von int, 0, implizit gesetzt ist, tritt kein Fehler auf.
>>> dd["c"]
1
#Mit get können Sie ohne defaultdict schreiben
>>> d
{'a': 1, 'b': 2}
>>> d["c"] = d.get("c", 0) + 1 #Ruft den Standardwert 0 von einem nicht vorhandenen Schlüssel ab+Ich mache
>>> d["c"]
1