Para responder à pergunta " como posso descobrir se um determinado índice nesse ditado já foi definido como um valor diferente de Nenhum ", eu preferiria isso:
try:
nonNone = my_dict[key] is not None
except KeyError:
nonNone = False
Isso está de acordo com o conceito já invocado de EAFP (mais fácil pedir perdão do que permissão). Também evita a pesquisa de chave duplicada no dicionário, como faria emkey in my_dict and my_dict[key] is not None
interessante se a pesquisa fosse cara.
Para o problema real que você colocou, por exemplo, incrementar um int, se existir, ou defini-lo com um valor padrão, caso contrário, também recomendo
my_dict[key] = my_dict.get(key, default) + 1
como na resposta de Andrew Wilkinson.
Existe uma terceira solução se você estiver armazenando objetos modificáveis no seu dicionário. Um exemplo comum disso é um multimap , onde você armazena uma lista de elementos para suas chaves. Nesse caso, você pode usar:
my_dict.setdefault(key, []).append(item)
Se um valor para chave não existir no dicionário, o método setdefault o definirá como o segundo parâmetro de setdefault. Ele se comporta exatamente como um padrão my_dict [key], retornando o valor da chave (que pode ser o novo valor definido).