Rodrigo de Toledo (adaptação do original do prof. Claudio Esperança)

Slides:



Advertisements
Apresentações semelhantes
Python: Funções Claudio Esperança.
Advertisements

Python: Recursão Claudio Esperança.
Python: Listas Claudio Esperança.
Python: Dicionários Claudio Esperança.
Python: Classes Claudio Esperança.
Administração de sistemas operacionais
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula /08/2011 Professor Leomir J. Borba-
Prof.: Bruno Rafael de Oliveira Rodrigues
Caso LCL Armazéns e Comércio Ltda.
Rodrigo de Toledo (original: Claudio Esperança)
Instrutor: Nilo Menezes
Arquivos Invertidos André Ferreira da Silva Jimy Marques Madeiro
Classes e objetos Arrays e Sobrecarga
Férias Coletivas Conceitos Iniciais Requisitos para concessão
Ap-3 Profª Kelly E. Medeiros
Banco de dados Profª Kelly Medeiros.
Python: algoritmos básicos
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
P YTHON : T IPO L ISTA George Gomes Cabral. L ISTAS São arranjos seqüenciais de informações mais simples Caracterizam-se por permitir o acesso eficiente.
Listas e Dicionários.
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
Enumerações Permitem a criação de tipos de dados Indicação de rótulos e valores Facilita a organização de problemas específicos Sintaxe geral Enum { [=
Aula prática 6 Vetores e Matrizes
Python: Módulos Claudio Esperança.
Prof. Natalia Castro Fernandes Engenharia de Telecomunicações – UFF 2º semestre/2012.
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
Linguagem de Programação II Parte IX
Ordenação e Pesquisa de Dados Marco Antonio Montebello Júnior
CADEIA DE CARACTERES (Strings)
Capítulo III Utilizando Arrays.
Aula prática 6 Vetores e Matrizes
 Restam, de março de 2010 à dezembro de 2012, 34 meses.  Cada aluno ao final deste período de ter arrecado o montante de R$ reais.
INTRODUÇÃO À TEORIA DOS CONJUNTOS
Python e Django – Programação de Alto Nível
CALENDÁRIO SEXY Ele & Ela. CALENDÁRIO SEXY Ele & Ela.
Vetor Prof. Guilherme Baião S. Silva Adaptações:
Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery.
Rio Verde - Goiás - Brasil
Ceça Moraes – Introdução à Programação SI1
Linguagem de Programação JAVA
Aula de Monitoria – Miniprova
Comando de Seleção switch
Equipe de monitoria Aula prática 4.  Tipos  Tabela de Objetos  Herança  Métodos  Referências  Coleções  Composição de coleções  Conectividade.
A TODOS OS MEUS AMIGOS..... COM A PROXIMIDADE DO FINAL DO ANO E INÍCIO DE UM NOVO, COMO NA ÚLTIMA HORA NUNCA TEMOS TEMPO DE CUMPRIMENTAR OS AMIGOS, MANDAR.
Aqui está Senhoras e Senhores!!!
A SECA EM PORTUGAL.
PROGRAMAÇÃO II – PARTE 6 Profa. Maria Augusta Constante Puget.
Tipos de Dados, Variáveis, Expressões Lógicas e Aritméticas
Daniel Esteves  11 EAB – PLL – Mr. Daniel Esteves – 2013/2014 Celebrando Diversidade e Cultivando Cidadania Calendário Parte.
Array e ArrayList LPOO – 01/09/14.
Visual C# (parte 2) Prof. Igor Conrado Alves de Lima – Operadores, estruturas de decisão, vetores (arrays), e estruturas de.
Arrays Outline 7.1 Introdução 7.2 Arrays 7.3 Declarando e Criando Arrays 7.4 Exemplos usando arrays 7.5 Ordenando arrays 7.6 Procurando em.
Banco de Dados -Aprendendo conceitos -Usando o SQL Conf para:
Selecção da turma Folha de fotos da turma calendário
Para te organizares melhor, usa este documento para registar tudo o que se relaciona com o teu trabalho escolar. Cada diapositivo corresponde a um mês.
Fundamentos de Programação 1 Slides 12 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Union, Enum e Typedef ”
Hamburger Calendário 2007 Janeiro
CALENDÁRIO EM LIBRAS.
GABARITO DOS EXERCÍCIOS DE MMQ
28 de novembro de :02:48 CALENDÁRIO 2011.
9-dez-18 01:48:30.
CALENDÁRIO PERMANENTE
Preço dos Biocombustíveis em Portugal - Ano 2016
JANEIRO DE 2010 DOMINGO SEGUNDA-FEIRA TERÇA-FEIRA QUARTA-FEIRA
Janeiro de 2010 SEGUNDA-FEIRA TERÇA-FEIRA QUARTA-FEIRA QUINTA-FEIRA
Janeiro D S T Q Q S S
Setembro 2009 SEGUNDA TERÇA QUARTA QUINTA SEXTA SÁBADO DOMINGO
PLAYBOY Calendário SÓ MULHERÃO.
Transcrição da apresentação:

Rodrigo de Toledo (adaptação do original do prof. Claudio Esperança) Python: Dicionários Rodrigo de Toledo (adaptação do original do prof. Claudio Esperança)

Chaves vs. Índices Considere que queiramos representar um caderno de telefones Uma solução é ter uma lista de nomes e outra de telefones Telefone de nome[i] armazenado em telefone[i] Acrescentar “Joao” com telefone “20122232”: nome+= “Joao” telefone+=“20122232” Para encontrar o telefone de “Joao”: tel = telefone[nome.index[“Joao”]] Dicionários tornam isso mais fácil e eficiente telefone[“Joao”] = “20122232” tel = telefone[“Joao”]

Dicionários São estruturas de dados que implementam mapeamentos Um mapeamento é uma coleção de associações entre pares de valores O primeiro elemento do par é chamado de chave e o outro de conteúdo chave1↔conteudo1 chave2↔conteudo2 chave3↔conteudo3 De certa forma, um mapeamento é uma generalização da idéia de acessar dados por índices, exceto que num mapeamento os índices (ou chaves) podem ser de qualquer tipo imutável

Criando dicionários Uma constante do tipo dicionário é escrita { chave1:conteúdo1, ... chaveN:conteúdoN} Uma variável do tipo dicionário pode ser “indexada” da maneira habitual, isto é, usando colchetes com a chave que se deseja acessar. Teljoao = telefone[“Joao”] O conteúdo associado a uma chave pode ser alterado atribuindo-se àquela posição do dicionário telefone[“Joao”] = “5555-0000” #novo telefone Novos valores podem ser acrescentados a um dicionário fazendo atribuição a uma chave ainda não definida telefone[“Maria”] = “5555-0001” #nova amiga

Exemplo >>> dic = {} >>> dic["joao"] = 100 >>> dic["maria"] = 150 {'joao': 100, 'maria': 150} >>> dic["joao"] 100 >>> dic["maria"] 150 >>> dic["pedro"] = 10 {'pedro': 10, 'joao': 100, 'maria': 150}

Exemplo Observe que não há ordem definida entre os pares chave/conteúdo de um dicionário >>> meses = {"janeiro":31, "fevereiro":28, "marco":31, "abril":30, "maio":31, "junho":30, "julho":31, "agosto":31, "setembro":30, "outubro":31, "novembro":31, "dezembro":31 } >>> for i in meses: print i, meses[i] novembro 31 marco 31 julho 31 agosto 31 fevereiro 28 junho 30 dezembro 31 janeiro 31 abril 30 maio 31 outubro 31 setembro 30

Dicionários não têm ordem As chaves dos dicionários não são armazenadas em qualquer ordem específica Na verdade, dicionários são implementados por tabelas de espalhamento (Hash Tables)‏ A falta de ordem é proposital Diferentemente de listas, atribuir a um elemento de um dicionário não requer que a posição exista previamente X = [] X [10] = 5 # ERRO! . . . Y = {} Y [10] = 5 # OK!

Percorrendo Dicionários >>> meses = {"janeiro":31, "fevereiro":28, "marco":31, "abril":30, "maio":31, "junho":30, "julho":31, "agosto":31, "setembro":30, "outubro":31, "novembro":31, "dezembro":31 } >>> for i in meses: print i, meses[i]

Métodos keys e values keys() retorna uma lista com todas as chaves do dicionário values() retorna uma lista com todos os valores do dicionário Ex.: dic = {'pedro': 10, 'joao': 100, 'maria': 150} >>> dic.keys()‏ ['joao', 'maria', 'pedro'] >>> dic.values()‏ [100, 150, 10]

Método has_key has_key(chave)‏ dic.has_key(chave) é o mesmo que chave in dic Ex.: >>> dic = { "Joao":"a", "Maria":"b" } >>> dic.has_key("Joao")‏ True >>> dic.has_key("Pedro")‏ False

Método pop pop (chave)‏ Obtém o valor correspondente a chave e remove o par chave/valor do dicionário Ex.: >>> d = {'x': 1, 'y': 2} >>> d.pop('x')‏ 1 >>> d {'y': 2}

Método clear (e len) clear()‏ Remove todos os elementos do dicionário Ex.: >>> x = { "Joao":"a", "Maria":"b" } >>> x.clear()‏ >>> print x {} Observação: Assim como em lista, é possível saber quantos elementos existe no dicionário usando LEN len(x)

Método update update(dic)‏ Atualiza um dicionário com os elementos de outro Os itens em dic são adicionados um a um ao dicionário original É possível usar a mesma sintaxe da função dict para especificar dic Ex.: >>> x = {"a":1,"b":2,"c":3} >>> y = {"z":9,"b":7} >>> x.update(y)‏ >>> x {'a': 1, 'c': 3, 'b': 7, 'z': 9} >>> x.update({'r':3}) {'a': 1, 'c': 3, 'b': 7, 'r': 3, 'z': 9} >>> x.update(a=7,c="xxx")‏ >>> x {'a': 7, 'c': 'xxx', 'b': 7, 'z': 9}

Exercício Algum mais fácil do que o da estação...

Exercício Uma estação meteorológica registra a temperatura ocorrida em uma cidade a cada hora. Faça um programa que: Leia as temperaturas de uma semana no seguinte formato: dia, hora, temperatura. A leitura termina com um dia inválido. Atenção, use um dicionário cuja chave são os dias da semana. Cada dia da semana deve ser mapeado para um outro dicionário mapeando horas em temperaturas. Em seguida, o programa imprime a maior temperatura para cada dia da semana. Finalmente, o programa deve então informar para cada hora consultada, a maior temperatura ocorrida na semana. As consultas terminam com um valor de hora inválido.