Dicionários Python
Em Python, um dicionário é uma coleção ordenada (a partir do Python > 3.7) de pares de chave: valor.
Da documentação do Python 3
As principais operações em um dicionário são armazenar um valor com alguma chave e extrair o valor dada a chave. Também é possível excluir um par chave:valor com del.
Exemplo de Dicionário:
# Dicionário: coleção de pares chave-valor
meu_gato = {
'tamanho': 'gordo', # chave: 'tamanho', valor: 'gordo'
'cor': 'cinza', # chave: 'cor', valor: 'cinza'
'disposicao': 'barulhento' # chave: 'disposicao', valor: 'barulhento'
}
Definir chave, valor usando o operador de subscrito []
# Adicionar ou atualizar entrada do dicionário usando o operador de subscrito
meu_gato = {
'tamanho': 'gordo',
'cor': 'cinza',
'disposicao': 'barulhento',
}
meu_gato['idade_anos'] = 2 # Adicionar novo par chave-valor
print(meu_gato)
{'tamanho': 'gordo', 'cor': 'cinza', 'disposicao': 'barulhento', 'idade_anos': 2}
Obter valor usando o operador de subscrito []
Caso a chave não esteja presente no dicionário, é levantada uma KeyError.
meu_gato = {
'tamanho': 'gordo',
'cor': 'cinza',
'disposicao': 'barulhento',
}
print(meu_gato['tamanho'])
gordo
print(meu_gato['cor_olho'])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'cor_olho'
values()
O método values() obtém os valores do dicionário:
# Iterar sobre os valores do dicionário usando o método .values()
animal_estimacao = {'cor': 'vermelho', 'idade': 42}
for valor in animal_estimacao.values(): # Percorrer todos os valores
print(valor)
vermelho
42
keys()
O método keys() obtém as chaves do dicionário:
# Iterar sobre as chaves do dicionário usando o método .keys()
animal_estimacao = {'cor': 'vermelho', 'idade': 42}
for chave in animal_estimacao.keys(): # Percorrer todas as chaves
print(chave)
cor
idade
Não há necessidade de usar .keys() pois, por padrão, você percorrerá as chaves:
# Iterar diretamente sobre o dicionário percorre as chaves (comportamento padrão)
animal_estimacao = {'cor': 'vermelho', 'idade': 42}
for chave in animal_estimacao: # Equivalente a for chave in animal_estimacao.keys()
print(chave)
cor
idade
items()
O método items() obtém os itens de um dicionário e os retorna como uma Tupla:
animal_estimacao = {'cor': 'vermelho', 'idade': 42}
for item in animal_estimacao.items():
print(item)
('cor', 'vermelho')
('idade', 42)
Usando os métodos keys(), values() e items(), um loop for pode iterar sobre as chaves, valores ou pares chave-valor em um dicionário, respectivamente.
# Iterar sobre pares chave-valor usando o método .items()
animal_estimacao = {'cor': 'vermelho', 'idade': 42}
for chave, valor in animal_estimacao.items(): # Desempacotar tupla em chave e valor
print(f'Chave: {chave} Valor: {valor}')
Chave: cor Valor: vermelho
Chave: idade Valor: 42
get()
O método get() retorna o valor de um item com a chave fornecida. Se a chave não existir, ele retorna None:
# Método .get(): recupera o valor com segurança, retorna None se a chave não existir
esposa = {'nome': 'Rose', 'idade': 33}
f'O nome da minha esposa é {esposa.get("nome")}' # Retorna 'Rose'
'O nome da minha esposa é Rose'
f'Ela tem {esposa.get("idade")} anos.'
'Ela tem 33 anos.'
f'Ela é profundamente apaixonada por {esposa.get("marido")}'
'Ela é profundamente apaixonada por None'
Você também pode alterar o valor padrão None para um de sua escolha:
esposa = {'nome': 'Rose', 'idade': 33}
f'Ela é profundamente apaixonada por {esposa.get("marido", "amante")}'
'Ela é profundamente apaixonada por amante'
Adicionar itens com setdefault()
É possível adicionar um item a um dicionário desta forma:
esposa = {'nome': 'Rose', 'idade': 33}
if 'tem_cabelo' not in esposa:
esposa['tem_cabelo'] = True
Usando o método setdefault, podemos tornar o mesmo código mais curto:
esposa = {'nome': 'Rose', 'idade': 33}
esposa.setdefault('tem_cabelo', True)
esposa
{'nome': 'Rose', 'idade': 33, 'tem_cabelo': True}
Remover Itens
pop()
O método pop() remove e retorna um item com base em uma chave fornecida.
esposa = {'nome': 'Rose', 'idade': 33, 'cabelo': 'castanho'}
esposa.pop('idade')
33
esposa
{'nome': 'Rose', 'cabelo': 'castanho'}
Faça login para responder este quiz e acompanhar seu progresso de aprendizagem
pop() faz quando chamado em um dicionário?popitem()
O método popitem() remove o último item em um dicionário e o retorna.
esposa = {'nome': 'Rose', 'idade': 33, 'cabelo': 'castanho'}
esposa.popitem()
('cabelo', 'castanho')
esposa
{'nome': 'Rose', 'idade': 33}
del
O método del remove um item com base em uma chave fornecida.
esposa = {'nome': 'Rose', 'idade': 33, 'cabelo': 'castanho'}
del esposa['idade']
esposa
{'nome': 'Rose', 'cabelo': 'castanho'}
clear()
O método clear() remove todos os itens em um dicionário.
esposa = {'nome': 'Rose', 'idade': 33, 'cabelo': 'castanho'}
esposa.clear()
esposa
{}
Verificando chaves em um Dicionário
pessoa = {'nome': 'Rose', 'idade': 33}
'nome' in pessoa.keys()
True
'altura' in pessoa.keys()
False
'pele' in pessoa # Você pode omitir keys()
False
Verificando valores em um Dicionário
pessoa = {'nome': 'Rose', 'idade': 33}
'Rose' in pessoa.values()
True
33 in pessoa.values()
True
Impressão Formatada (Pretty Printing)
import pprint
esposa = {'nome': 'Rose', 'idade': 33, 'tem_cabelo': True, 'cor_cabelo': 'castanho', 'altura': 1.6, 'cor_olho': 'castanho'}
pprint.pprint(esposa)
{'altura': 1.6,
'cor_cabelo': 'castanho',
'cor_olho': 'castanho',
'idade': 33,
'nome': 'Rose',
'tem_cabelo': True}
Mesclar dois dicionários
Para Python 3.5+:
dict_a = {'a': 1, 'b': 2}
dict_b = {'b': 3, 'c': 4}
dict_c = {**dict_b, **dict_a}
dict_c
{'a': 1, 'b': 3, 'c': 4}
Faça login para responder este quiz e acompanhar seu progresso de aprendizagem
{**dict_b, **dict_a}, o que acontece se ambos os dicionários tiverem a mesma chave?dict_b sobrescreve o valor de dict_adict_a sobrescreve o valor de dict_b