Dicionários em Python: guia completo com exemplos reais
Este tutorial foi traduzido do original em inglês.Read in EnglishLeer en españolЧитать на русскомอ่านภาษาไทยAvisar sobre um erro de tradução
Abra o app de contatos do seu celular. Você procura uma pessoa pelo nome e obtém o número de telefone dela. Você não busca pela posição: ninguém diz "me dê o contato número 47". Você busca pelo nome.
Um dicionário em Python funciona exatamente assim. Em vez de guardar itens por posição (como uma lista), um dicionário guarda itens como pares chave-valor. A chave é o nome que você procura, e o valor é o que você recebe de volta.
Dicionários estão em toda parte na programação de verdade. Perfis de usuário, configurações, dados JSON vindos de APIs, contadores de palavras: tudo isso usa dicionários. Neste tutorial, você vai dominar todas as operações essenciais com dicionários.
Como criar um dicionário em Python
Você cria um dicionário escrevendo entre chaves {} os pares chave-valor, com dois-pontos entre a chave e o valor. Os pares são separados por vírgulas.
{'name': 'Alice', 'phone': '555-1234', 'email': 'alice@example.com'}As chaves geralmente são strings, mas podem ser qualquer valor hashable (na prática, um valor que não pode mudar), como um número, um booleano ou uma tupla desses valores. Os valores podem ser qualquer coisa: strings, números, listas e até outros dicionários.
{'name': 'Bob', 'age': 16, 'grades': [85, 92, 78], 'active': True}
{}
{}Acessando e modificando valores do dicionário
Para obter um valor de um dicionário, coloque a chave entre colchetes. Para mudar um valor, atribua um novo valor a essa chave. Para adicionar um novo par, atribua um valor a uma chave que ainda não existe.
Alice
25
26
{'name': 'Alice', 'age': 26, 'city': 'Boston', 'job': 'Engineer'}Not specified Alice
data = {'x': 10}
# Crashes with KeyError:
value = data['y']data = {'x': 10}
# Returns 0 if 'y' is missing:
value = data.get('y', 0)Métodos essenciais de dicionários
Os dicionários vêm com vários métodos embutidos que facilitam o trabalho com eles. Estes são os que você vai usar com mais frequência.
['apple', 'banana', 'cherry']
[1.5, 0.75, 3.0]
[('apple', 1.5), ('banana', 0.75), ('cherry', 3.0)]3
{'apples': 5, 'oranges': 8}
{'apples': 10, 'oranges': 8, 'grapes': 12}Repare que update() adiciona chaves novas e também sobrescreve as que já existem. No exemplo acima, 'apples' mudou de 5 para 10, e 'grapes' foi adicionada como uma chave nova.
Percorrendo dicionários
Você pode percorrer as chaves, os valores ou os dois. O jeito mais comum é percorrer items(), para obter a chave e o valor de uma vez.
Alice Bob Charlie --- 95 87 72 --- Alice: 95 Bob: 87 Charlie: 72
Verificando se uma chave existe
Antes de acessar uma chave, muitas vezes você quer verificar se ela existe. A palavra-chave in procura nas chaves, não nos valores.
True False True Email: alice@example.com
Dicionários aninhados
O valor de um dicionário pode ser outro dicionário. Isso se chama aninhamento e permite representar dados complexos e estruturados, como uma turma de alunos em que cada um tem seu próprio conjunto de atributos.
A 15 Alice is 16 and got a A Bob is 15 and got a B Charlie is 16 and got a A
Para acessar um valor aninhado, você encadeia colchetes: primeiro a chave externa, depois a interna. Você pode aninhar quantos níveis quiser, mas mais de dois ou três níveis fica difícil de ler.
Erros comuns com dicionários
New York
data = {'a': 1, 'b': 2, 'c': 3}
for key in data:
if data[key] < 2:
del data[key] # RuntimeError!data = {'a': 1, 'b': 2, 'c': 3}
for key in list(data.keys()):
if data[key] < 2:
del data[key] # Safe!
print(data) # {'b': 2, 'c': 3}Exercícios práticos
Hora de praticar! Estes exercícios vão das operações básicas com dicionários até padrões mais complexos.
Crie um dicionário chamado pet com estes pares chave-valor:
'name': 'Buddy''species': 'dog''age': 5Depois, exiba o nome do pet.
Saída esperada:
BuddyVocê recebe um dicionário que representa um livro. Siga estes passos, nesta ordem:
1. Mude 'year' para 2024
2. Adicione uma nova chave 'genre' com o valor 'fiction'
3. Exiba o dicionário inteiro
Saída esperada:
{'title': 'The Great Adventure', 'author': 'Jane Smith', 'year': 2024, 'genre': 'fiction'}Você recebe um dicionário com o perfil de um usuário. Use o método .get() para exibir com segurança o telefone do usuário. Se a chave 'phone' não existir, exiba 'No phone number'.
Saída esperada:
No phone numberPercorra o dicionário e exiba cada fruta e seu preço neste formato:
apple: $1.50
banana: $0.75
cherry: $3.00Garanta que os preços apareçam com exatamente duas casas decimais.
Leia este código com atenção e preveja o que ele vai exibir. O que acontece quando um dicionário tem chaves duplicadas?
Digite a saída exata.
Este código tenta verificar se a nota 'A' existe no dicionário, mas está verificando a coisa errada. Corrija-o para que ele exiba:
Someone got an A!Conte quantas vezes cada palavra aparece na lista dada. Guarde as contagens em um dicionário chamado word_counts e depois exiba-o.
Saída esperada:
{'hello': 3, 'world': 2, 'python': 1}Você recebe um dicionário aninhado de alunos. Percorra cada aluno e exiba o nome dele e a nota de matemática neste formato:
Alice: 95
Bob: 82
Charlie: 91Resumo: o que você aprendeu sobre dicionários em Python
Ótimo trabalho! Aqui está uma revisão de tudo o que você sabe agora:
| Conceito | O que faz | Exemplo |
|---|---|---|
| Criar um dicionário | Guarda pares chave-valor | d = {'name': 'Alice'} |
| Acessar pela chave | Obtém um valor | d['name'] |
| Acesso seguro | Valor padrão se a chave faltar | d.get('x', 0) |
| Adicionar / modificar | Define um valor | d['age'] = 25 |
keys() | Todas as chaves | d.keys() |
values() | Todos os valores | d.values() |
items() | Tuplas chave-valor | d.items() |
pop(key) | Remove e retorna | d.pop('age') |
update() | Junta dicionários | d.update(other) |
in | Verifica se a chave existe | 'name' in d |
| Aninhamento | Dicionários dentro de dicionários | d['a']['b'] |
Os dicionários são uma das estruturas de dados mais importantes do Python. Dados JSON, respostas de APIs, arquivos de configuração, contadores: tudo isso gira em torno de pares chave-valor.
O que vem a seguir?
No próximo tutorial, Comprehensions em Python, você vai aprender a criar listas, dicionários e conjuntos em uma única linha de código elegante.
As comprehensions (compreensões) permitem trocar laços de várias linhas por uma única linha concisa. Elas são um dos recursos que deixam o Python tão limpo e expressivo.