Python: Dicionários. Claudio Esperança

Documentos relacionados
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações UFF 2º semestre/2012

Python - Dicionários. Introdução à Programação SI1

24/09/2014. Prof. André Backes

Tuplas e Dicionários. Vanessa Braganholo vanessa@ic.uff.br

Estruturas de Dados 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

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

Aula de hoje. Outras estruturas de dados. Teoria dos conjuntos. Teoria dos conjuntos. Conjuntos em Python. Conjuntos em Python

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

Algoritmos e Estrutura de Dados Aula 05 Dicionários em Python

Algoritmos e Estrutura de Dados Aula 02 Listas em Python

Python: Listas. Claudio Esperança

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

PYTHON LISTAS. Introdução à Programação SI1

Aula de hoje. Tipos de Dados e Variáveis. Constantes literais. Dados. Variáveis. Tipagem dinâmica. SCC Introdução à Programação para Engenharias

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

Python Listas e Strings. Listas 23/11/2016. Por que usar listas? Listas. Listas - Solução. Listas - Problema

Python: Tuplas e Strings. Claudio Esperança

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

Algoritmos e Programação

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

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

PYTHON - Strings. Introdução à Programação SI1

Algoritmos e Estrutura de Dados Aula 08 Pilhas

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

Algoritmos e Programação

Ederson Luiz da Silva Ciência da Computação. Algoritmos e Programação

A classe ArrayList. IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli

Linguagem Python. Inteligência Artificial. Características de Python. Importando módulos. Módulos. Usando Python no modo interativo

Algoritmos e Estruturas de Dados I. Hash Table - Python. Prof. Tiago Eugenio de Melo

Allen B. Downey. Novatec

Programação de Computadores LAÇOS E LISTAS

Estrutura de Dados. Diego Silveira Costa Nascimento

Listas, conjuntos e dicionários

Sets. Declaração: var y : Set[Int] = Set() O tipo do conjunto não é obrigatório, podendo usar a inferência: var x = Set(1,3,5,7)

Aula de hoje. Listas. Sequências especiais. Introdução. Listas. Sequências. SCC Introdução à Programação para Engenharias

Manipulação de Strings

Processamento da Informação Teoria. Coleções: Listas

A Linguagem Lua Lua Puc-Rio

TIPOS ESTRUTURADOS. Prof. Msc. Luis Filipe Alves Pereira 2015

Computação II (MAB 225)

Aula de hoje. Funções. Introdução. Função. Definição de funções. Exemplo. SCC Introdução à Programação para Engenharias

AMBIENTE DE PROGRAMAÇÃO PYTHON II

Minicurso de Linguagem de Programação Python.

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

Web Services REST e JSON

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

AULA 2: INTRODUÇÃO A PYTHON. Luís Feliphe Silva Costa

BCD29008 Banco de dados

3ª Edição Nilo Ney Coutinho Menezes

MCG126 Programação de Computadores II

Estruturas de dados funcionais

Sequências - Tuplas. Sequências - Tuplas

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

Introdução à Programação

Compiladores II. Fabio Mascarenhas

Computação 1. Aula 4 - Teórica Professor: Leonardo Carvalho

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

Aula 3: Tipos e variáveis

Hashing. Prof. Josenildo Silva IFMA 2014

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

INTRODUÇÃO À COMPUTAÇÃO - RESUMO E EXERCÍCIOS* P2

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

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

Variáveis e Entrada de Dados Marco André Lopes Mendes marcoandre.googlepages.

Python 3.x Tipos de Dados Tuplas Dicionários

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

Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Programação de Computadores I - BCC701

Banco de Dados. -Aprendendo conceitos -Usando o SQL Conf para: -Conectar no banco de dados -Criar, alterar, excluir e consultar estruturas de tabelas

Introdução à Ciência da Computação Disciplina: Prof. Edison Ishikawa Python 3.0 Aula 05 Listas

Edital de Seleção 023/2018 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Pedro Vasconcelos DCC/FCUP. Programação Funcional 2 a Aula Tipos e classes

Preparação para Maratona de Informática PYTHON

Características de Python. Inteligência Artificial. Baixando e Instalando. Operadores. Variáveis. Strings 9/10/2010

Python: Funções. Claudio Esperança

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

Minicurso de Python Aula 2. Raphael Lupchinski Marcelo Millani

Computação II (MAB 225)

Computação 1 - Python Aula 3 - Teórica: Tipos de dados, Strings, Estrutura Condicional 1/ 28

Fundamentos de Programação I

CONCEITOS BÁSICOS DE PROGRAMAÇÃO PYTHON

Padrão para a codificação em Python

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

Programação I Aula 9 Listas e tuplos

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Programação: Vetores

Prof. Esp. Andrew Rodrigues 1

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

Histórico. Perl (Practical Extraction and Report Language). Criada por Larry Wall em 1987.

MERGULHANDO NO PHYTON MERGULHANDO NO. O guia rápido e prático para dominar o Python. Mark Pilgrim

Banco de Dados I Introdução SQL

Unidade 5: Introdução à Programação com Python Prof. Daniel Caetano

Algoritmos e Estruturas de Dados I

Linguagens de Programação

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

Programação de Computadores III

Algoritmos e Programação I

INTRODUÇÃO À COMPUTAÇÃO - EPET006 -

Variáveis Tipos de Dados. APROG (Civil) Aula 2

Transcrição:

Python: Dicionários Claudio Esperança

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 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

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 ]

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 O conteúdo associado a uma chave pode ser alterado atribuindo se àquela posição do dicionário Novos valores podem ser acrescentados a um dicionário fazendo atribuição a uma chave ainda não definida Não há ordem definida entre os pares chave/conteúdo de um dicionário

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

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!

A função dict A função dict é usada para construir dicionários e requer como parâmetros: Uma lista de tuplas, cada uma com um par chave/conteúdo, ou Uma seqüência de itens no formato chave=valor Nesse caso, as chaves têm que ser strings, mas são escritas sem aspas

Exemplo >>> d = dict([(1,2),('chave','conteudo')]) >>> d[1] 2 >>> d['chave'] 'conteudo' >>> d = dict(x=1,y=2) >>> d['x'] 1 >>> d = dict(1=2,3=4) SyntaxError: keyword can't be an expression

Formatando com Dicionários O operador de formatação quando aplicado a dicionários requer que os valores das chaves apareçam entre parênteses antes do código de formatação O conteúdo armazenado no dicionário sob aquela chave é substituído na string de formatação Ex: >>> dic = { "Joao":"a", "Maria":"b" } >>> s = "%(Joao)s e %(Maria)s" >>> s % dic 'a e b'

clear() Método clear Remove todos os elementos do dicionário Ex.: >>> x = { "Joao":"a", "Maria":"b" } >>> y = x >>> x.clear() >>> print x,y {} {} Diferente de atribuir {} à variável: >>> x = { "Joao":"a", "Maria":"b" } >>> y = x >>> x = {} >>> print x,y {} {'Joao': 'a', 'Maria': 'b'}

copy() Método copy Retorna um outro dicionário com os mesmos pares chave/conteúdo Observe que os conteúdos não são cópias, mas apenas referências para os mesmos valores >>> x = {"Joao":[1,2], "Maria":[3,4]} >>> y = x.copy() >>> y ["Pedro"]=[5,6] >>> x ["Joao"] += [3] >>> print x {'Joao': [1, 2, 3], 'Maria': [3, 4]} >>> print y {'Pedro': [5, 6], 'Joao': [1, 2, 3], 'Maria': [3, 4]}

Método fromkeys fromkeys(lista,valor) Retorna um novo dicionário cujas chaves são os elementos de lista e cujos valores são todos iguais a valor Se valor não for especificado, o default é None >>> {}.fromkeys([2,3]) {2: None, 3: None} # Podemos usar o nome da classe ao invés # de um objeto: >>> dict.fromkeys(["joao","maria"],0) {'Joao': 0, 'Maria': 0}

get(chave,valor) Obtém o conteúdo de chave Método get Não causa erro caso chave não exista: retorna valor Se valor não for especificado chaves inexistentes retornam None Ex.: >>> dic = { "Joao":"a", "Maria":"b" } >>> dic.get("pedro") >>> print dic.get("pedro") None >>> print dic.get("joao") a >>> print dic.get("carlos","n/a") N/A

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étodos items, keys e values items() retorna uma lista com todos os pares chave/conteúdo do dicionário keys() retorna uma lista com todas as chaves do dicionário values() retorna uma lista com todos os valores do dicionário Ex.: >>> dic.items() [('Joao', 'a'), ('Maria', 'b')] >>> dic.keys() ['Joao', 'Maria'] >>> dic.values() ['a', 'b']

pop (chave) Método pop 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}

popitem() Método popitem Retorna e remove um par chave/valor aleatório do dicionário Pode ser usado para iterar sobre todos os elementos do dicionário Ex: >>> d {'url': 'http://www.python.org', 'spam': 0, 'title': 'Python Web Site'} >>> d.popitem() ('url', 'http://www.python.org') >>> d {'spam': 0, 'title': 'Python Web Site'}

update(dic) Método update 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(a=7,c="xxx") >>> x {'a': 7, 'c': 'xxx', 'b': 7, 'z': 9}