Aplicações de Dicionários. Prof. Alberto Costa Neto Programação em Python

Documentos relacionados
Dicionários. Prof. Alberto Costa Neto Programação em Python

Computação 1 - Python Aula 10 - Teórica: Estrutura de Dados - Dicionário. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 18

Dicionários. Operações Aliases, cópias. Os tipos de dados compostos que estudamos até ao momento (strings, listas, tuplos) são sequenciais:

Comandos de Entrada e Saída. Prof. Alberto Costa Neto Programação em Python

Arquivos. Prof. Alberto Costa Neto Programação em Python

Listas, conjuntos e dicionários

Usos do Laço For. Prof. Alberto Costa Neto Programação em Python

Vetores. Vanessa Braganholo

Listas e Tuplas. Vanessa Braganholo

Python 3.x Estrutura de Repetição while

Python: Dicionários. Claudio Esperança

Programação I Aula 8 Cadeias de carateres

Módulo: PYTHON. Felipe Oliveira

Introdução à Programação / Programação I

Sequências - Tuplas. Sequências - Tuplas

1 Definição de funções 1. 2 Valores boleanos e condicionais 5. Podemos depois usar as novas funções tal qual as pré-definidas

Aula passada. Aula passada... Sequências Funções puras e modificadores. Listas Tuplos

Programação I Aula 14 Dicionários Pedro Vasconcelos DCC/FCUP

Introdução à Programação Aula 14 Dicionários

MCG126 Programação de Computadores II

Programação I Aula 14 Dicionários

Principais Idiomas de Laços. Prof. Alberto Costa Neto Programação em Python

Computação 1 - Python Aula 6 - Teórica: Listas 1/ 28

Produtividade e qualidade em Python através da metaprogramação

Python: Exceções, Iteradores e Geradores. Claudio Esperança

Entrada e saída. Marco A L Barbosa malbarbo.pro.br. Departamento de Informática Universidade Estadual de Maringá

Python 3.x Estrutura de Repetição for Estrutura de Decisão if then else

Tuplas. Prof. Alberto Costa Neto Programação em Python

Manipulação de Listas. Vanessa Braganholo

Computadores e Programação o semestre. Aula Helmut Wolters, Jorge Landeck, Miguel Oliveira

A Linguagem Python: Uma visão geral. Prof. Alberto Costa Neto Programação em Python

Python 3.x Tipos de Dados Tuplas Dicionários

MC-102 Aula 11 Strings

MCG114 Programação de Computadores I. Strings. Strings. Strings. Strings. Strings 3/26/18. Profa. Janaína Gomide

TCC 00308: Programação de Computadores I Organização de programas em Python

Descritores de atributos em Python

Aula de hoje. Expressões. Expressões. Expressões. Exemplos. Programa em Python. SCC Introdução à Programação para Engenharias

Exercícios para Fundamentos da Programação

Os elementos da programação

Introdução à Programação Aula 17 Deteção e correção de erros

Professor Jefferson Chaves Jefferson de Oliveira Chaves - IFC Araquari

MC-102 Aula 02 Shell Interativa, Programa Básico, Variáveis, Atribuições, Tipos Simples. Instituto de Computação Unicamp

Informática para Ciências e Engenharias 2013/14. Teórica 7

Algoritmos e estrutura de dados

Computação 1 - Python Aula 2 - Teórica. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 39

Paradigmas de Programação

Organização de programas em Python. Vanessa Braganholo

Computação I - Python

Programação I Aula 17 Correção de programas Pedro Vasconcelos DCC/FCUP

Recursão. Dados recursivos

Processamento da Informação Teoria. Desvio Condicional

AMBIENTE DE PROGRAMAÇÃO PYTHON II

Introdução à Programação / Programação I

24/09/2014. Prof. André Backes

Informática para Ciências e Engenharias 2014/15. Teórica 7

Computação 1 - Python Aula 4 - Teórica Variáveis e Atribuição, Strings. João Carlos, Carla Delgado, Ana Luisa Duboc 1/ 30

10 - Ciclo while. Ludwig Krippahl 4/3/2019 ICE-B-10 ICE-B

Computação I - Python Aula 4 - Teórica: Variáveis e Atribuição, Strings

ACH5531 Introdução à Computação Estruturas de repetição

1/ 26. Computação 1 - Python Aula 1 - Prática: Primeiros Passos - Função

A resposta apresentada em aula, no quadro, (em Chapin e/ou Português Estruturado) está correta?

Computação 1 - Python 1/ 41

Computação 2. Aula 11 Teórica professor: Leonardo Carvalho

1/ 23. Computação 1 - Python Aula 1 - Prática: Primeiros Passos - Função

Manipulação de Strings. Vanessa Braganholo

Listas. Prof. Alberto Costa Neto Programação em Python

Computação I - Python Aula 1 - Prática: Primeiros Passos- Função

Luciano Ramalho setembro/2012. Objetos Pythonicos. Orientação a objetos e padrões de projeto em Python

Nesta aula... Diagramas da stack. Recursão. 1 Funções. 2 Valores booleanos e condicionais. 3 Execução condicional e recursão

Funções. Prof. Alberto Costa Neto Programação em Python

Aula de hoje. Comandos. Comandos simples. Comandos. Comandos de controle. Bloco de comandos. SCC Introdução à Programação para Engenharias

Python: Comandos Básicos. Claudio Esperança

Programação I Aula 11 Mais sobre ciclos e iteração

CONTEÚDO PROGRAMÁTICO

Laboratório de Programação 1 Aula 04

CONCEITOS BÁSICOS DE PROGRAMAÇÃO PYTHON

LINGUAGEM C: COMANDOS DE CONTROLE CONDICIONAL

Manipulação de Strings. Vanessa Braganholo

1 Expressões, valores e tipos 1. 2 Variáveis e atribuições 5. cálculo de expressões segue a estrutura de parênteses e as prioridades dos operadores

Estruturas de Dados em Python

Introdução à Ciência da Computação Disciplina:

VARIÁVEIS, OPERADORES ARITMÉTICOS E LISTAS

TCC 00308: Programação de Computadores I Manipulação de listas

3ª Edição Nilo Ney Coutinho Menezes

Curso básico de Python para estudantes de Física

Algoritmos e Estrutura de Dados Aula 04 Strings em Python parte 1

Nas aulas anteriores Strings. Ciclos

Computação II (MAB 225)

Python: Listas. Claudio Esperança

Computação 1 - Python Aula 4 - Teórica: Variáveis e Atribuição, Strings 1/ 26

Linguagem Python. Processamento Estatístico da Linguagem Natural. Barra invertida em strings. Strings. Aspas triplas. Operações com Strings

Computação I - Python Aula 1 - Teórica: Manipulação de Strings, Tuplas e Listas

Introdução à Programação / Programação I

Aula 06 Introdução à Programação com a Linguagem Python

Introdução à Programação Aula 13 Manipulação de ficheiros

SCC0124 Introdução à Programação para Engenharias

Introdução à Programação em C (II)

Transcrição:

Aplicações de Dicionários Prof. Alberto Costa Neto Programação em Python

Qual é o nome mais comum? alberto pedro maria luiz maria lucia clara pedro

Qual é nome mais comum? alberto pedro maria luiz maria lucia clara pedro

Qual é nome mais comum? alberto pedro maria luiz maria lucia clara pedro

Muitos Contadores com um Dicionário Um uso bastante comum de um dicionário é contar quantas vezes algo ocorre ou foi encontrado >>> dic = dict() >>> dic['pedro'] = 1 >>> dic['maria'] = 1 >>> print(dic) {'pedro': 1, 'maria': 1} >>> dic['pedro'] = dic['pedro'] + 1 >>> print(dic) {'pedro': 2, 'maria': 1} Chave Valor

Tracebacks de Dicionários Um erro comum é referenciar uma chave que não está no dicionário Para evitá-lo, podemos usar o operador in para testar se a chave está contida no dicionário >>> dic = dict() >>> print(dic['alberto']) Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'alberto' >>> print('alberto' in dic) False

E quando surge um novo valor? Quando encontramos um novo nome, precisamos adicionar uma nova entrada no dicionário. Da segunda vez em diante que o nome é encontrado, basta adicionar 1 ao respectivo contador no dicionário. conts = dict() nomes = ['', 'pedro', 'maria', '', 'maria'] for nome in nomes : if nome not in conts: conts[nome] = 1 else : conts[nome] = conts[nome] + 1 print(conts) {'': 2, 'pedro': 1, 'maria': 2}

O método get dos dicionários O padrão de checar antecipadamente se a chave já está no dicionário e assumir um valor padrão se a chave não estiver lá é tão comum que existe um método chamado get() que faz isso por nós {'': 2, 'pedro': 1, 'maria': 2} if nome in conts: x = conts[nome] else : x = 0 Adota um valor padrão se a chave não existir (e sem Traceback). x = conts.get(nome, 0)

Contagem simplificada com get Podemos usar get() e prover o valor padrão 0 quando a chave não estiver ainda no dicionário e então somente adicionar 1 conts = dict() nomes = ['', 'pedro', 'maria', '', 'maria'] for nome in nomes : conts[nome] = conts.get(nome, 0) + 1 print(conts) Valor padrão {'': 2, 'pedro': 1, 'maria': 2}

Padrão de Contagem conts = dict() print('digite uma linha de texto:') linha = input() palavras = linha.split() print('palavras:', palavras) print('contando...') for p in palavras: conts[p] = conts.get(p,0) + 1 print('contadores:', conts) O padrão geral para contar as palavras em uma linha de texto é particionar a linha em palavras, então iterar pelas palavras e usar um dicionário para contabilizar o número de ocorrências de cada palavra independentemente.

Contando Palavras python contarpalavras.py Digite uma linha de texto: O doce perguntou pro doce qual é o doce mais doce. O doce respondeu pro doce que o doce mais doce é o doce de batata doce. https://img.cybercook.uol.com.br/imagens/re ceitas/425/doce-de-batata-doce-1.jpg Palavras: ['O', 'doce', 'perguntou', 'pro', 'doce', 'qual', 'é', 'o', 'doce', 'mais', 'doce.', 'O', 'doce', 'respondeu', 'pro', 'doce', 'que', 'o', 'doce', 'mais', 'doce', 'é', 'o', 'doce', 'de', 'batata', 'doce.'] Contando... Contadores: {'O': 2, 'doce': 8, 'perguntou': 1, 'pro': 2, 'qual': 1, 'é': 2, 'o': 3, 'mais': 2, 'doce.': 2, 'respondeu': 1, 'que': 1, 'de': 1, 'batata': 1}

Laços Definidos e Dicionários Ainda que dicionários não sejam armazenados em ordem, nós podemos escrever um laço for que percorre todas as entradas em um dicionário Na prática iteramos por todas as chaves contidas no dicionário e buscamos o valor que está associado a cada chave no dicionário >>> conts = { '' : 1, 'fred' : 42, 'maria': 100} >>> for chave in conts:... print(chave, conts[chave])... 1 fred 42 maria 100 >>>

Recuperando listas de Chaves e Valores Você pode obter uma lista de chaves, valores, ou itens (contém ambos juntos) de um dicionário >>> dic = {'': 1, 'fred': 42, 'maria': 100} >>> print(dic) {'': 1, 'fred': 42, 'maria': 100} >>> print(list(dic.keys())) ['', 'fred', 'maria'] >>> print(list(dic.values())) [1, 42, 100] >>> print(list(dic.items())) [('jan', 100), ('chuck', 1), ('fred', 42)] >>> O que é uma 'tupla'? em breve...

Bônus: 2 Variáveis de Iteração! Podemos iterar sobre os pares (chave-valor) em um dicionário usando *duas* variáveis de iteração Em cada iteração, a primeira variável de iteração recebe uma chave e a segunda o valor correspondente a esta chave >>> dic = { '':1,'fred':42, 'maria':100} >>> for chave,valor in dic.items() :... print(chave, valor)... 1 fred 42 maria 100 >>> Chave Valor [] 1 [fred] 42 [maria] 100

Mais exemplos de aplicação de Dicionários Guardar o número de assentos livres em um vôo. O dicionário poderia guardar o número do vôo como chave e o valor associado seria o número de assentos livres Guardar um cardápio de um restaurante. A chave seria o nome do prato e o valor seria o preço Obter os dados para gerar um Histograma

Obter os dados para um Histograma