Sicheres Einfügen in ein Dictionary

Hier ist ein Stück Code über das ich mal gestolpert bin. Ich habe das tatsächlich schon desöfteren genau so gebraucht. Bislang kannte ich die setdefault() Funktion noch nicht.

dict_of_duplicates_docs = {}

for doc in documents: # documents sind dictionaries mit einer Datenbank _id
    hashval = get_hashval(doc) # gibt einen hash für dieses Dokument zurück
                               # der identisch ist, wenn es sich um das 
                               # gleiche Dokument handelt 
                               # (unabhängig von der DB _id)
    _id = doc["_id"]    
    dict_of_duplicate_docs.setdefault(hashval, []).append(_id)

Wenn hashval noch nicht im Dictionary vorhanden ist, setzt setvalue diesen key und speichert die leere Liste als value. Es gibt dann den value für den key aus hashval zurück.

In diesen Rückgabewert, die (leere) Liste der ids, fügen wir dann gleich die neue _id ein.

Man muss also nicht erst im Dict nachschlagen, ob der Key schon existiert und manuell die leere Liste setzen, nur um sicher zu sein, dass es keinen KeyError beim Schreiben der _id gibt.

Am Ende finden wir also die Duplikate, wenn in der Liste mehr als eine _id eingetragen wurde:

{ 
  "hashA": ["id_1", "id_3", "id_4"],
  "hashB": ["id_2"]
}