Métodos get e setdefault em Dicionários - O que são e Como Usar

Neste tutorial de nosso Curso de Python de graça, vamos aprender a usar dois importantes métodos de dicionários, o get() e o setdefault().

Leia também:

Métodos dos Dicionários em Python

Uma das maiores vantagens do Python é já ter muita coisa 'embutida'.

Ou seja, já tem muita coisa pronta, feita, apenas usar o método, função, módulo ou biblioteca específica. Assim, você evita de ficar 'inventando a roda'.

Agora, vamos aprender a usar dois métodos, que são funções prontas para se trabalhar com dicionários.

Vamos usar o código do tutorial anterior:
Que é, basicamente, o dicionário:


notas={'João'   :  9,
       'Maria'  : 10,
       'José': 4}

Nos próximos tutoriais também vamos aprender a usar novos métodos.


Como verificar se uma chave existe:
Método get()

Um dicionário não pode ter duas chaves iguais.
Já um valor pode se repetir várias vezes.

No dicionário anterior, podemos ter várias notas iguais, mas somente um João, uma Maria e um José, ok?

Experimente rodar o seguinte código:


notas={'João'   :  9,
       'Maria'  : 10,
       'José': 4}
print("Nota do Neil Peart: ", notas['Neil Peart'])
                                


Vai dar erro, pois não tem o aluno 'Neil Peart', vai aparecer uma mensagem de erro (KeyError).
Seu programa dá um crash, para de funcionar, se tentar acessar um item que não existem.

Geralmente, antes de trabalhar com um dicionário, especificamente quando queremos adicionar mais items, é necessário verificar se uma chave já existe.

Para isso, vamos usar o método get()
Esse método recebe dois parâmetros: get(key, value)
key - É a chave que você quer testar, pra saber se existe
value - Caso essa chave não existe, ele retorna esse valor ou None (caso não forneça nada, é opcional esse value)

O script abaixo testa se 'Peart' é um aluno ou não na lista:


notas={'João'   :  9,
       'Maria'  : 10,
       'José': 4}

if notas.get('Peart') == None:
    print("Nao existe aluno Peart")
else:
    print("Aluno existente")



Definir o valor de uma chave:
Método setdefault()

Note o que o método get() faz no dicionário quando a chave fornecida não existe: nada.

Apenas retorna para quem chamou o método o valor key de get(key, value), uma espécie de resposta.

Seria mais útil se caso não existisse essa key ele criasse um item com essa chave e atribuísse a ele o valor value, não acha?

Se é óbvio, pode ter certeza que tem no Python.
Fazemos isso com o método setdefault(key, value)

O script abaixo testa se tem o aluno 'Peart', se tiver ele cria um item com esta key e dá o valor 8 para ele. Em seguida, imprimimos o dicionário para você ver como esse aluno foi adicionado, vejam:


notas={'João'   :  9,
       'Maria'  : 10,
       'José': 4}

notas.setdefault('Peart', 8)
print(notas)


Caso a chave já exista, o método setdefault não faz nada na chave existente, não altera nada nela, ok?

Nenhum comentário:

Postar um comentário