No Python, dicionários são coleções mutáveis e não ordenadas de pares chave-valor, em que cada chave é um elemento exclusivo que identifica um item de dado; o valor e servem, assim com as tuplas, os dicionários são úteis para armazenar dados heterogêneos.
Dicionários são estruturas dinâmicas, por tanto, podemos adicionar novos pares de chave-valor a qualquer momento, bastando fornecer o nome do dicionário, seguido pela nova chave entre colchetes e o valor novo.
Dicionários em Python, diferente de listas, não usam índices numéricos. Em vez disso, eles usam chaves para acessar valores. Portanto, você não pode acessar itens de um dicionário usando índices como em uma lista. Para acessar um valor em um dicionário, você deve usar a chave associada a esse valor.
Exemplo de um dicionário chamado notas, e terá duas chaves representando dois alunos,
aluno1 e aluno2, com seus respectivos valores (notas) sendo o aluno1 nota = 5 e aluno2 nota = 8
notas = {'aluno1': 5, 'aluno2': 8}
print(notas)
Veja no exemplo acima que um dicionário em Python nada mais é do que uma coleção de pares chave-valor, sendo que cada chave está vinculada a um valor, e podemos usar uma chave para acessar o valor associado a essa chave conforme associamos as notas aos alunos.
Valores em dicionários
Em Python, um dicionário é envolto entre chaves { }, com uma série de pares chave-valor dentro das chaves conforme mostrado anteriormente.
Os valores em um dicionário podem ser:
✅ Número
✅ String
✅ Lista
✅ Dicionários
✅ Ou outro qualquer objeto criado em Python podemos utilizar como valor em um dicionário.
Ao fornecer uma chave, Python retorna o valor associado a essa chave.
Chave em dicionário
Cada chave é vinculada ao seu valor por dois pontos e os pares chave-valor são separados por vírgulas e podemos adicionar quantos pares chave-valor quisermos em um dicionário.
Acessando valores em um dicionário
Para acessar os valores de um dicionário, é necessário informar o nome do dicionário.
Conforme no exemplo anterior, print(notas) para mostrar o dicionário inteiro.
Para acessar a nota do aluno2 por exemplo, devemos especificar a chave que queremos visualizar:
notas = {'aluno1': 5, 'aluno2': 8}
print(notas['aluno2'])
Utilizando chaves entre colchetes para acessar o valor que estamos procurando, pode ocassionar um erro se a chave solicitada, não existir.
Para deixar nossa pesquisa mais assertiva, podemos utilizar o método get() para definirmos um valor padrão que será retornado se a chave solicitada não existir.
🟫 Método get()
exige uma chave como primeiro argumento. Como segundo argumento opcional, podemos passar o valor a ser retornado caso a chave solicitada não exista não dicionário.
notas = {'aluno1': 5, 'aluno2': 8}
variavel = notas.get('aluno1', 'Chave não existe')
print(variavel)
Neste exemplo acima, a chave aluno1 existe, por tanto, a saída será 5, mas se eu colocasse 'aluno3' no lugar de 'aluno1' utilizando o método get, a saída seria Chave não existe.
Atribuir o valor de uma chave específica a uma variável
notas = {'aluno1': 5, 'aluno2': 8}
variavel = notas['aluno2']
print(variavel)
Alterar valores em um dicionário
No script abaixo, mostra o dicionário notas com aluno1 com nota 5, e logo abaixo, altero o valor da nota do aluno1 de 5 para 6, e posteriormente imprimo o dicionário novamente para checar o valor alterado.
notas = {'aluno1': 5, 'aluno2': 8}
notas['aluno1'] = '6'
print(notas)
Saída: {'aluno1': '6', 'aluno2': 8}
Removendo valores em um dicionário
Quando precisamos remover um valor, removemos a chave e valor junto, utilizando del, e informo ao Python qual é a chave que desejo excluir. A exclusão é feita permanentemente, não tem como reverter após exclusão.
notas = {'aluno1': 5, 'aluno2': 8}
del notas['aluno1']
print(notas)
Saída: {'aluno2': 8}
Percorrendo todos os pares chave-valor com um loop e o método items()
Para percorrer um dicionário com um loop for criarei abaixo duas variáveis chamada valor e chave, e um dicionário de um usuário que se chamará user_0
user_0 = {
'username': 'amandan',
'primeironome': 'amanda',
'ultimonome': 'nascimento'
}
for chave, valor in user_0.items():
print(f"\nChave: {chave}")
print(f"Valor: {valor}")
Saída:
Chave: username
Valor: amandan
Chave: primeironome
Valor: amanda
Chave: ultimonome
Valor: nascimento
Podemos usar quaisquer nome para as variáveis que nomeei como chave e valor.
A segunda metade da instrução for inclui o nome do dicionário seguido pelo método items, que retornará uma sequência de pares chave-valor.
Em seguida, o loop for atribui cada um desses pares às duas variáveis fornecidas (utilizei o nome chave e valor como nome das variáveis).
🟫 Método keys
Retorna uma vista de todas as chaves no dicionário.
alunos = {
'aluno1': 7,
'aluno2': 5,
'aluno3': 3,
'aluno4': 9
}
for nome in alunos.keys():
print(nome.title())
Saída:
Aluno1
Aluno2
Aluno3
Aluno4
Outro exemplo:
notas = {'aluno1': 5, 'aluno2': 8}
chaves = notas.keys() print(chaves)
# Saída: dict_keys(['aluno1', 'aluno2'])
🟫 Método values
Retorna uma vista de todos os valores no dicionário.
notas = {'aluno1': 5, 'aluno2': 8}
valores = notas.values()
print(valores)
# Saída: dict_values([5, 8])
🟫 Método update
Atualiza o dicionário com pares (chave, valor) de outro dicionário ou de um iterável de pares (chave, valor).
notas = {'aluno1': 5, 'aluno2': 8}
novas_notas = {'aluno3': 7, 'aluno2': 10}
notas.update(novas_notas)
print(notas) # Saída: {'aluno1': 5, 'aluno2': 10, 'aluno3': 7}
🟫 Método pop
Remove a chave especificada e retorna o valor correspondente. Se a chave não for encontrada, pode retornar um valor padrão ou gerar um erro.
notas = {'aluno1': 5, 'aluno2': 8}
# Remover chave existente
valor = notas.pop('aluno2')
print(valor) # Saída: 8
print(notas) # Saída: {'aluno1': 5}
# Remover chave inexistente com valor padrão
valor = notas.pop('aluno3', 'Chave não existe')
print(valor) # Saída: Chave não existe
🟫 Método popitem
Remove e retorna um par (chave, valor) arbitrário do dicionário. Útil para implementar algoritmos de pilha (LIFO).
notas = {'aluno1': 5, 'aluno2': 8}
item = notas.popitem()
print(item) # Saída: ('aluno2', 8) ou ('aluno1', 5) dependendo da versão do Python
print(notas) # Saída: {'aluno1': 5} ou {}
🟫 Método clear
Remove todos os itens do dicionário.
notas = {'aluno1': 5, 'aluno2': 8}
notas.clear()
print(notas) # Saída: {}
🟫 Método copy
Retorna uma cópia rasa (shallow copy) do dicionário.
notas = {'aluno1': 5, 'aluno2': 8}
copia_notas = notas.copy()
print(copia_notas) # Saída: {'aluno1': 5, 'aluno2': 8}
🟫 Método fromkeys
Cria um novo dicionário com chaves a partir de um iterável e valores definidos para um valor padrão.
chaves = ['aluno1', 'aluno2', 'aluno3']
valor_padrao = 0
novo_dict = dict.fromkeys(chaves, valor_padrao)
print(novo_dict) # Saída: {'aluno1': 0, 'aluno2': 0, 'aluno3': 0}