Um die Frage zu beantworten, " wie kann ich herausfinden, ob ein bestimmter Index in diesem Diktat bereits auf einen Nicht-Keine-Wert gesetzt wurde ", würde ich Folgendes bevorzugen:
try:
nonNone = my_dict[key] is not None
except KeyError:
nonNone = False
Dies entspricht dem bereits angeführten Konzept der EAFP (leichter um Vergebung zu bitten als um Erlaubnis). Außerdem wird die Suche nach doppelten Schlüsseln im Wörterbuch vermieden, wie dies bei key in my_dict and my_dict[key] is not None
interessanten Suchvorgängen der Fall wäre.
Für das eigentliche Problem , das Sie gestellt haben, dh das Erhöhen eines int, falls vorhanden, oder das Setzen auf einen anderen Standardwert, empfehle ich auch das
my_dict[key] = my_dict.get(key, default) + 1
wie in der Antwort von Andrew Wilkinson.
Es gibt eine dritte Lösung, wenn Sie modifizierbare Objekte in Ihrem Wörterbuch speichern. Ein häufiges Beispiel hierfür ist eine Multimap , in der Sie eine Liste von Elementen für Ihre Schlüssel speichern. In diesem Fall können Sie Folgendes verwenden:
my_dict.setdefault(key, []).append(item)
Wenn im Wörterbuch kein Wert für key vorhanden ist, setzt ihn die setdefault-Methode auf den zweiten Parameter von setdefault. Es verhält sich wie ein Standard-my_dict [Schlüssel] und gibt den Wert für den Schlüssel zurück (der möglicherweise der neu eingestellte Wert ist).