Tudo sobre Dicionários em Python
Os dicionários são uma das estruturas de dados mais poderosas e flexíveis em Python. Eles permitem armazenar pares de chave-valor, onde cada chave é única e mapeia para um valor específico. Dicionários são ideais para situações em que você precisa acessar dados de forma rápida e eficiente, usando uma chave como referência. Neste artigo, vamos explorar tudo o que você precisa saber sobre dicionários em Python.
1. O que são Dicionários?
Em Python, um dicionário é uma coleção não ordenada, mutável e indexada por chaves. Cada elemento em um dicionário consiste em uma chave e um valor associado. As principais características dos dicionários são:
Chaves Únicas: Cada chave em um dicionário deve ser única.
Mutáveis: Podemos adicionar, remover ou modificar pares chave-valor após a criação do dicionário.
Heterogêneos: As chaves e valores podem ser de qualquer tipo (números, strings, listas, outros dicionários, etc.).
2. Como Criar um Dicionário
Para criar um dicionário em Python, utilizamos chaves {}
e separamos os pares chave-valor por vírgulas. A chave e o valor são separados por dois pontos :
.
# Dicionário de frutas e suas quantidades
estoque = {
"maçã": 10,
"banana": 5,
"laranja": 8
}
# Dicionário vazio
dicionario_vazio = {}
Também é possível criar um dicionário usando a função dict()
:
# Usando a função dict()
estoque = dict(maçã=10, banana=5, laranja=8)
3. Acessando Elementos de um Dicionário
Os valores em um dicionário são acessados por meio de suas chaves. Se a chave não existir, um erro KeyError
será levantado.
estoque = {"maçã": 10, "banana": 5, "laranja": 8}
# Acessando o valor associado à chave "maçã"
print(estoque["maçã"]) # Saída: 10
# Acessando o valor associado à chave "banana"
print(estoque["banana"]) # Saída: 5
Para evitar erros ao acessar uma chave que pode não existir, podemos usar o método get()
:
# Usando get() para acessar uma chave que pode não existir
quantidade = estoque.get("uva", 0) # Retorna 0 se "uva" não existir
print(quantidade) # Saída: 0
4. Modificando Dicionários
Dicionários são mutáveis, o que significa que podemos adicionar, remover ou modificar pares chave-valor após a criação.
Adicionando ou Atualizando Elementos
Para adicionar ou atualizar um valor, basta atribuir um valor a uma chave:
estoque = {"maçã": 10, "banana": 5}
# Adicionando um novo par chave-valor
estoque["laranja"] = 8
# Atualizando o valor de uma chave existente
estoque["maçã"] = 15
print(estoque) # Saída: {"maçã": 15, "banana": 5, "laranja": 8}
Removendo Elementos
Podemos remover elementos de um dicionário usando o comando del
ou o método pop()
:
estoque = {"maçã": 10, "banana": 5, "laranja": 8}
# Removendo a chave "banana" com del
del estoque["banana"]
# Removendo a chave "laranja" com pop e retornando o valor
valor_removido = estoque.pop("laranja")
print(estoque) # Saída: {"maçã": 10}
print(valor_removido) # Saída: 8
5. Operações com Dicionários
Verificando a Existência de uma Chave
Podemos verificar se uma chave está presente em um dicionário usando o operador in
:
estoque = {"maçã": 10, "banana": 5}
# Verificando se "maçã" está no dicionário
if "maçã" in estoque:
print("Maçã está no estoque!") # Saída: Maçã está no estoque!
else:
print("Maçã não está no estoque.")
Iterando sobre um Dicionário
Podemos iterar sobre as chaves, valores ou pares chave-valor de um dicionário:
estoque = {"maçã": 10, "banana": 5, "laranja": 8}
# Iterando sobre as chaves
for fruta in estoque.keys():
print(fruta) # Saída: maçã, banana, laranja
# Iterando sobre os valores
for quantidade in estoque.values():
print(quantidade) # Saída: 10, 5, 8
# Iterando sobre os pares chave-valor
for fruta, quantidade in estoque.items():
print(f"{fruta}: {quantidade}") # Saída: maçã: 10, banana: 5, laranja: 8
6. Métodos Úteis de Dicionários
keys()
: Retorna uma lista das chaves do dicionário.values()
: Retorna uma lista dos valores do dicionário.items()
: Retorna uma lista de tuplas contendo os pares chave-valor.update()
: Atualiza o dicionário com pares chave-valor de outro dicionário.clear()
: Remove todos os elementos do dicionário.
estoque = {"maçã": 10, "banana": 5}
# Adicionando novos pares chave-valor com update()
estoque.update({"laranja": 8, "uva": 12})
print(estoque) # Saída: {"maçã": 10, "banana": 5, "laranja": 8, "uva": 12}
# Limpando o dicionário
estoque.clear()
print(estoque) # Saída: {}
7. Verificando a Existência de um Elemento
Usando o Operador in
O operador in
é a forma mais direta de verificar se uma chave está presente no dicionário.
estoque = {"maçã": 10, "banana": 5}
# Verificando se "maçã" está no dicionário
if "maçã" in estoque:
print("Maçã está no estoque!") # Saída: Maçã está no estoque!
else:
print("Maçã não está no estoque.")
Usando um Loop for in
com Condicional if
Podemos iterar sobre as chaves do dicionário e verificar manualmente se uma chave específica está presente.
estoque = {"maçã": 10, "banana": 5}
chave_procurada = "maçã"
encontrado = False
# Iterando sobre as chaves
for chave in estoque.keys():
if chave == chave_procurada:
encontrado = True
break # Sai do loop ao encontrar a chave
if encontrado:
print(f"{chave_procurada} está no estoque!") # Saída: maçã está no estoque!
else:
print(f"{chave_procurada} não está no estoque.")
8. Dicionários Aninhados
Dicionários podem conter outros dicionários, criando estruturas mais complexas. Isso é útil para representar dados hierárquicos.
# Dicionário aninhado
estoque = {
"frutas": {"maçã": 10, "banana": 5},
"legumes": {"cenoura": 20, "batata": 15}
}
# Acessando valores em dicionários aninhados
print(estoque["frutas"]["maçã"]) # Saída: 10
print(estoque["legumes"]["batata"]) # Saída: 15