Mandar um café pro programador

Pode me ajudar a transformar cafeína em código?

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?

4 comentários:

  1. Prezados, no texto acima: "O script abaixo testa se tem o aluno 'Peart', se tiver ele cria um item com esta key..." o correto é "se NÃO tiver ele cria um item..." (certamente erro na digitação).

    ResponderExcluir
    Respostas
    1. percebi isso também, é bom o adm corrigilo!

      Excluir

Bora fazer evoluir o ensino da Programação no Brasil ?

Que tal apoiar e fazer crescer o ensino da programação no Brasil ?

Ajudar nosso país a crescer e se desenvolver cada vez mais, tecnologicamente?

Clica abaixo pra saber mais!

Apoiar o Projeto Progressivo