Per rispondere alla domanda " come posso sapere se un determinato indice in quel dict è già stato impostato su un valore diverso da Nessuno ", preferirei questo:
try:
nonNone = my_dict[key] is not None
except KeyError:
nonNone = False
Ciò è conforme al concetto già invocato di EAFP (più facile chiedere perdono quindi permesso). Evita anche la ricerca di chiavi duplicate nel dizionario come sarebbe key in my_dict and my_dict[key] is not None
interessante se la ricerca fosse costosa.
Per l'effettivo problema che hai posto, ovvero aumentare un int se esiste o impostarlo su un valore predefinito in caso contrario, ti consiglio anche di
my_dict[key] = my_dict.get(key, default) + 1
come nella risposta di Andrew Wilkinson.
Esiste una terza soluzione se si memorizzano oggetti modificabili nel dizionario. Un esempio comune di ciò è una multimappa , in cui è memorizzato un elenco di elementi per le chiavi. In tal caso, puoi utilizzare:
my_dict.setdefault(key, []).append(item)
Se nel dizionario non esiste un valore per chiave, il metodo setdefault lo imposterà sul secondo parametro di setdefault. Si comporta come un my_dict standard [chiave], restituendo il valore per la chiave (che potrebbe essere il valore appena impostato).