Buscar

[INF1025] Resumo Dicionário

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

INF1025: Introdução à Programação 
Monitor: André Vicente Pessanha 
Resumo Dicionário​: 
 
*************************************************************************************************** 
 
OBS:​ Essa matéria cai somente na P3! 
 
*************************************************************************************************** 
 
Definição: 
 
Dicionários são bem parecido com listas. A principal vantagem é a possibilidade de escolher 
o tipo (Número ou String) e quais são os valores dos índices! E a principal desvantagem é 
não existir ordenação! (O método sort só funciona em listas!) 
 
Lembrando que em listas, a indexação é feita obrigatoriamente com números em >> 
Sequência << e não podemos escolher, os índices são sempre fixos. 
 
Em dicionários, o índice é representado por uma chave que identifica de forma >> ​única​ << 
cada elemento (Um código, nome, cpf, etc) algo que não se repita! ​Não podemos ter 
chaves repetidas​!​ ​Pois são os identificadores de cada elemento do dicionário. 
 
OBS: ​Em Banco de dados será dado bastante ênfase nesse conceito que é chamado de 
chave primária. (Primary Key) 
 
Então em dicionário precisamos especificar dois campos: ​Chave e valor ​(De cada 
elemento) 
 
OBS:​ Lembrando que os elementos em lista são indexados por números inteiros! 
(Começando em zero) Enquanto em dicionários, os elementos são indexados por uma 
chave de qualquer tipo! (Número ou string) 
 
------------------------------------------------------- // ------------------------------------------------------------ 
 
 
- Como criar uma Dicionário? 
 
EX:​ ​Crie um dicionário que represente os dados de um zoológico onde cada animal 
possui um código e um nome. 
 
O primeiro passo é analisar, qual dessas informações é algo >> Único << ? O código ou o 
nome? 
 
Como pode ter nomes repetidos e o código identifica cada animal de forma única (Assim 
como um CPF) então vamos usar o ​código​ como ​chave​ do dicionário! 
 
dados = { 100: "Coelho", 255: "Pombo", 353: "Esquilo" } 
 
print(dados) # Exibe o dicionário todo 
 
EX2: Crie um dicionário que represente os dados de um zoológico onde cada animal 
possui um nome, um peso e uma altura. 
 
Wait! Agora não temos mais o código, somente nome, peso e altura. Qual deles será o 
identificador de cada elemento agora? :O 
 
Como sabemos que é possível ter repetição tanto no peso quanto na altura de um animal. 
Então vamos usar o nome como chave do dicionário! 
 
dados = { "Coelho": [18.5 , 4], "Cat":[22.7 , 4.5], "Esquilo":[12.5 , 2.5] } 
 
OBS: ​Notou que dessa vez os índices (Chaves) são strings? :O 
 
OBS:​ O enunciado das questões sempre envolvem tabelas com as informações. Nunca 
vamos precisar inventar do além todos esses dados. E na dúvida do identificador, é só 
observar na tabela qual das informações nunca se repete. :) 
 
 
------------------------------------------------------- // ------------------------------------------------------------ 
 
- Como acessar o conteúdo de um elemento: 
 
dados = { "Coelho": [18.5 , 4], "Cat":[22.7 , 4.5], "Esquilo":[12.5 , 2.5] } 
 
print( dados[“Coelho”] ) # Exibe o altura e peso [18.5, 4] 
 
OBS:​ Lembrando que em Lista pra acessar o primeiro elemento iríamos usar dados[ 0 ] pois 
a contagem dos índices começa em >> Zero << Mas em dicionários >> Não << existe 
sequência numérica, podemos usar qualquer valor como índice do elemento! 
 
------------------------------------------------------- // ------------------------------------------------------------ 
 
- Como alterar um elemento do dicionário? 
 
dados = { "Coelho": [18.5 , 4], "Cat":[22.7 , 4.5] } 
dados[“Cat”] = [23.5, 4.2] 
 
OBS:​ Lembrando que se colocar um nome de chave que >> ​Não ​<< existe no dicionário, 
como por exemplo “​c​at” (Sem querer com letra minúscula) será inserido como um​ novo 
elemento ​no dicionário!!! :( 
 
------------------------------------------------------- // ------------------------------------------------------------ 
 
- Verificar se uma chave pertence ao dicionário: 
 
 
dados = { "Coelho": [18.5 , 4], "Cat":[22.7 , 4.5] } 
pet = “Cat” 
 
if( pet in dados): 
print(“Esse animal existe no dicionário!”) 
else: 
print(“Esse animal Não existe no dicionário!”) 
 
OBS: ​Se a chave pertence ao dicionário, a condição if é True, senão False. 
 
------------------------------------------------------- // ------------------------------------------------------------ 
 
- Como adicionar um novo elemento no Dicionário? 
 
Temos o seguinte dicionário do Zoológico e queremos adicionar um Pombo com 10cm de 
altura e 5kg de peso (Sim, é um Pombo muito pesado! :O ) 
 
dados = { "Coelho": [18.5 , 4], "Cat":[22.7 , 4.5], "Esquilo":[12.5 , 2.5] } 
 
dados[“Pombo”] = [10, 5] 
 
OBS: ​É só colocar qualquer nome ou número (Dependendo do tipo da chave) seguido de 
uma atribuição com o valor(es) 
 
------------------------------------------------------- // ------------------------------------------------------------ 
 
- Como percorrer um dicionário? 
 
dados = { "Coelho": [18.5,4],"Cat":[22.7 , 4.5], "Esquilo":[12.5 , 2.5] , "Pombo":[10,5] } 
 
for k in dados: 
 print(k) 
 
OBS:​ A variável >>​ k​ << sempre armazena as chaves (índices) do dicionário! Da mesma 
forma como a variável >>​ i​ << em lista! Pra não confundir, recomendo usar >> ​key​ << ou >> 
k​ << como nome de variável! Justamente pra lembrar que se trata das chaves do dicionário! 
:) 
 
 
------------------------------------------------------- // ------------------------------------------------------------ 
 
 
 
- Como remover elementos do dicionário? 
 
EX: ​Remova o elemento “Coelho” do dicionário. (Pombos não gostam de coelhos e estão 
criando confusão no Zoológico! :O ) 
 
dados = { "Coelho": [18.5,4],"Cat":[22.7 , 4.5], "Esquilo":[12.5 , 2.5] , "Pombo":[10,5] } 
 
del​ ​dados[“Coelho”] 
 
Mas e se queremos remover do dicionário e retornar os dados do elementos removido? 
 
info = dados.pop("Coelho") 
print("Informação do Coelho:", info) 
print(dados) 
 
OBS: ​O método pop remove e >>​ Retorna ​<< o valor do elemento removido! 
 
 
------------------------------------------------------- // ------------------------------------------------------------ 
 
Principais Métodos de Dicionário​: 
 
1)​ O Método​ get ​recebe uma chave como parâmetro e retorna seu valor ou a string “None” 
se a chave não existe. 
 
dados = {"Cat":[22.7 , 4.5], "Esquilo":[12.5 , 2.5] , "Pombo":[10,5] } 
info = dados.get("Pombo") 
print(info) 
 
Podemos especificar no segundo parâmetro a mensagem que será exibida caso a chave 
não exista no dicionário: 
 
info = dados.get("Dog", "Não achou! :(") 
print(info) 
 
2) ​O método ​keys​ retorna todas as chaves do dicionário. 
 
dados = {"Cat":[22.7 , 4.5], "Esquilo":[12.5 , 2.5] , "Pombo":[10,5] } 
 
nomes = list(dados.keys()) 
print(nomes) 
 
OBS​: Esse método retorna uma sequência de valores do tipo >> ​Tupla​ << (Não é do tipo 
list!) Então se queremos criar uma lista a partir das chaves do dicionário (Nome dos 
animais) precisamos converter para o tipo >> ​list ​<<! 
 
3)​ O método ​values​ retorna os valores de todos os elementos do Dicionário. 
 
dados = {"Cat":[22.7 , 4.5], "Esquilo":[12.5 , 2.5] , "Pombo":[10,5] } 
 
info = list(dados.values()) 
print(info) 
 
OBS:​ Exatamente o mesmo esquema do método keys, precisamos converter o tipo para 
list! 
 
 
4)​ O método ​update​ insere todas as chaves que​ >> Não << ​estão no dicionário e as que 
estão atualiza seu valor. 
 
EX: ​Queremos atualizar o dicionário dados com as informações do dicionários info. 
 
dados = {"Cat":[22.7 , 4.5], "Esquilo":[12.5 , 2.5] , "Pombo":[10,5] } 
info = {"Dog":[21.5, 5], "Cat":[23, 4]} 
 
dados.update(info) 
print(dados) 
 
OBS:​ Como a chave ​“Dog”​ não existe no dicionário dados, então ele é adicionado! E comoa chave​ “Cat”​ já existe, então ela é atualizada com os novos valores! 
 
5)​ O método​ copy ​gera uma cópia de um dicionário. 
 
dados = {"Cat":[22.7 , 4.5], "Esquilo":[12.5 , 2.5] , "Pombo":[10,5] } 
 
info = dados.copy() 
print(info) 
 
OBS:​ Lembrando que é uma cópia do ​conteúdo​ (Chave e valores) do dicionário e da 
referência​ dos elementos! E >> ​Não ​<< da referência do dicionário! 
 
Wait! Que negócio é esse de cópia da referência dos elementos!? O_O 
 
Quer dizer que se alterarmos um valor a partir de uma chave, essa alteração >> ​não ​<< 
afeta o dicionário original. 
 
info = dados.copy() 
info["Cat"] = [23, 4] 
print(dados) 
print(info) 
 
Mas se alterarmos um elemento específico da lista que está dentro do dicionário, essa 
alteração tb será feita no dicionário original! 
 
info = dados.copy() 
info["Cat"][0] = 23 
print(dados) 
print(info) 
 
E como faz pra clonar um dicionário? (Cópia da referência do dicionário) 
 
info = dados 
info["Cat"] = [23,4] 
print(dados) 
print(info) 
 
OBS:​ Como é feito uma cópia de ambas referências (Dicionário e dos elementos) agora 
qualquer alteração (Inclusive as dos exemplos acima) vai alterar o dicionário original! 
 
 
------------------------------------------------------- // ------------------------------------------------------------ 
 
 
 
 
EX: Crie um dicionário com as informações da tabela abaixo e exiba o nome e o IMC 
(Peso / Altura ** 2) de cada um. 
 
Nome​ ​Altura​ ​Peso 
 
Huguinho 1.20 45 
Luisinho 1.10 60 
Zezinho 1.00 100 
Patinhas 1.10 40 
Donald 1.20 50 
 
 
dados = {"Huguinho": [1.20,45], "Luisinho": [1.10,60], "Zezinho":[1.00,100], "Patinhas": [1.10, 
40], "Donald": [1.20, 50] } 
 
for ​k​ in dados: 
print( ​k​ + " IMC: %.2f\n" % (dados[​k​][1] / dados[​k​][0]**2)) 
 
 
 
EX: A partir do dicionário do item anterior crie uma lista somente com os nomes e 
outra só com os valores (Use os métodos de Dicionário) 
Calcule o peso médio e atualize o dicionário somando 10% do peso médio se o nome 
contém a letra u. 
 
dados = {"Huguinho": [1.20,45], "Luisinho": [1.10,60], "Zezinho":[1.00,100], "Patinhas": [1.10, 
40], "Donald": [1.20, 50] } 
 
nomes = ​list​(dados.keys()) # Lembrar de converter! 
vals = ​list​(dados.values()) 
 
pmed = 0 # Inicializar com zero (Somatório!) 
for x in vals: 
pmed += x[0] 
 
pmed /= len(nomes) # Calculando a média 
pmed *= 0.1 # 10% da média 
 
for x in nomes: 
if('u' in x): 
 dados[x][0] += pmed 
 
f​or k in dados: 
print( ​k​ + " Peso: %.2f\n" % (dados[​k​][0])) 
 
EX: Adicione no dicionário a “Clarabela” com altura 2.30 e peso 80Kg e a Peninha 
com altura 1.20 e Peso 60Kg. 
 
dados["Clarabela"] = [2.30, 80] 
dados["Peninha"] = [1.20, 60] 
print(dados) 
 
EX: Remova do dicionário a “Peninha” e exiba na tela suas informações. 
 
info = ​dados.pop​("Peninha") 
print(info) 
 
EX: Crie uma cópia do dicionário e altere as informações de Donald e exibe na tela 
ambos dicionários. 
 
info = ​dados.copy​() 
info["Donald"] = [2.0, 100] 
print(dados) 
print(info) 
 
------------------------------------------------------- // ------------------------------------------------------------

Continue navegando