Objetivo Geral
- Entender o funcionamento da estrutura de dados dicionário.
Pré-requisitos
- Python 3
- VSCode
Etapa 1: Criação e acesso aos dados
Um dicionário é um conjunto não-ordenado de pares chave:valor, onde as chaves são únicas em uma dada instância do dicionário. Dicionários são delimitados por chaves: {}, e contêm uma lista de pares chave:valor separada por vírgulas.
Criando dicionários
pessoa = {"nome": "Guilherme", "idade": 28}
pessoa = dict(nome="Guilherme", idade=28)
pessoa["telefone"] = "3333-1234" # {"nome": "Guilherme", "idade": 28, "telefone": "3333-1234"}Os dados são acessados e modificados através da chave.
Acesso aos dados
dados = {"nome": "Guilherme", "idade": 28, "telefone": "3333-1234"}
dados["nome"] # "Guilherme"
dados["idade"] # 28
dados["telefone"] # "3333-1234"
dados["nome"] = "Maria"
dados["idade"] = 18
dados["telefone"] = "9988-1781"
dados # {"nome": "Maria", "idade": 18, "telefone": "9988-1781"}Dicionários podem armazenar qualquer tipo de objeto Python como valor, desde que a chave para esse valor seja um objeto imutável (como strings e números).
Dicionários aninhados
contatos = {
"guilherme@gmail.com": {"nome": "Guilherme", "telefone": "3333-2221"},
"giovanna@gmail.com": {"nome": "Giovanna", "telefone": "3443-2121"},
"chappie@gmail.com": {"nome": "Chappie", "telefone": "3344-9871"},
"melaine@gmail.com": {"nome": "Melaine", "telefone": "3333-7766"},
}
contatos["giovanna@gmail.com"]["telefone"] # "3443-2121"A forma mais comum para percorrer os dados de um dicionário é utilizando o comando for.
Iterar dicionários
for chave in contatos:
print(chave, contatos[chave])
for chave, valor in contatos.items():
print(chave, valor)Etapa 2: Métodos da classe dict
{}.clear
contatos = {
"guilherme@gmail.com": {"nome": "Guilherme", "telefone": "3333-2221"},
"giovanna@gmail.com": {"nome": "Giovanna", "telefone": "3443-2121"},
"chappie@gmail.com": {"nome": "Chappie", "telefone": "3344-9871"},
"melaine@gmail.com": {"nome": "Melaine", "telefone": "3333-7766"},
}
contatos.clear()
contatos # {}{}.copy
contatos = {
"guilherme@gmail.com": {"nome": "Guilherme", "telefone": "3333-2221"}
}
copia = contatos.copy()
copia["guilherme@gmail.com"] = {"nome": "Gui"}
contatos["guilherme@gmail.com"] # {"nome": "Guilherme", "telefone": "3333-2221"}
copia["guilherme@gmail.com"] # {"nome": "Gui"}{}.fromkeys
dict.fromkeys(["nome", "telefone"]) # {"nome": None, "telefone": None}
dict.fromkeys(["nome", "telefone"], "vazio") # {"nome": "vazio", "telefone": "vazio"}{}.get
contatos = {
"guilherme@gmail.com": {"nome": "Guilherme", "telefone": "3333-2221"}
}
contatos.get("chave") # None
contatos.get("chave", {}) # {}
contatos.get("guilherme@gmail.com", {}) # {"nome": "Guilherme", "telefone": "3333-2221"}{}.items
contatos = {
"guilherme@gmail.com": {"nome": "Guilherme","telefone": "3333-2221"}
}
contatos.items() # dict_items([('guilherme@gmail.com', {'nome': 'Guilherme', 'telefone': '3333-2221'})]){}.keys
contatos = {
"guilherme@gmail.com": {"nome": "Guilherme","telefone": "3333-2221"}
}
contatos.keys() # dict_keys(['guilherme@gmail.com']){}.pop
contatos = {
"guilherme@gmail.com": {"nome": "Guilherme","telefone": "3333-2221"}
}
contatos.pop("guilherme@gmail.com") # {'nome': 'Guilherme', 'telefone': '3333-2221'}{}.popitem
contatos = {
"guilherme@gmail.com": {"nome": "Guilherme","telefone": "3333-2221"}
}
contatos.popitem() # ('guilherme@gmail.com', {'nome': 'Guilherme', 'telefone': '3333-2221'}){}.setdefault
contato = {'nome': 'Guilherme', 'telefone': '3333-2221'}
contato.setdefault("nome", "Giovanna") # "Guilherme"
contato.setdefault("idade", 28) # 28{}.update
contatos = {
"guilherme@gmail.com": {"nome": "Guilherme","telefone": "3333-2221"}
}
contatos.update({"guilherme@gmail.com": {"nome": "Gui"}}){}.values
contatos.values() # dict_values(...)in
"guilherme@gmail.com" in contatos # Truedel
del contatos["guilherme@gmail.com"]["telefone"]Atividade Prática
Com base nos conhecimentos adquiridos, realize as seguintes tarefas:
- Criação: Crie um dicionário chamado
alunoscontendo 3 alunos como chaves e seus respectivos dicionários internos comnome,idadeecurso. - Acesso: Exiba no console o nome e o curso do primeiro aluno do dicionário
alunos. - Métodos: Utilize o método
.update()para adicionar um novo aluno ao dicionárioalunos. - Iteração: Utilize um laço
forjunto com o método.items()para imprimir cada chave e valor do dicionárioalunosno formato:Chave: X - Dados: Y.