SlideShare une entreprise Scribd logo
1  sur  18
Télécharger pour lire hors ligne
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
. . .
Y = {}
Y [10] = 5

# ERRO!
# 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'
Método clear
 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'}
Método copy
 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}
Método get
 get(chave,valor)
 Obtém o conteúdo de chave
 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']
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 popitem
 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'}
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(a=7,c="xxx")
>>> x
{'a': 7, 'c': 'xxx', 'b': 7, 'z': 9}

Contenu connexe

Tendances

Applications Android - cours 3 : Android Studio (Outil de développement)
Applications Android - cours 3 : Android Studio (Outil de développement)Applications Android - cours 3 : Android Studio (Outil de développement)
Applications Android - cours 3 : Android Studio (Outil de développement)Ahmed-Chawki Chaouche
 
Creating Apps With .NET MAUI for iOS, Android, macOS + Windows
Creating AppsWith .NET MAUIfor iOS, Android, macOS + WindowsCreating AppsWith .NET MAUIfor iOS, Android, macOS + Windows
Creating Apps With .NET MAUI for iOS, Android, macOS + WindowsBrandon Minnick, MBA
 
L'API Collector dans tous ses états
L'API Collector dans tous ses étatsL'API Collector dans tous ses états
L'API Collector dans tous ses étatsJosé Paumard
 
Cours php -partie 1.pdf
Cours php -partie 1.pdfCours php -partie 1.pdf
Cours php -partie 1.pdfssuserc46a93
 
Applications Android - cours 6 : Structure d’un projet Android
Applications Android - cours 6 :  Structure d’un projet AndroidApplications Android - cours 6 :  Structure d’un projet Android
Applications Android - cours 6 : Structure d’un projet AndroidAhmed-Chawki Chaouche
 
Introduction to Spring Boot
Introduction to Spring BootIntroduction to Spring Boot
Introduction to Spring BootTrey Howard
 
Les Streams de Java 8
Les Streams de Java 8Les Streams de Java 8
Les Streams de Java 8Antoine Rey
 
Intégration Web HTML 5 & CSS 3
Intégration Web HTML 5 & CSS 3Intégration Web HTML 5 & CSS 3
Intégration Web HTML 5 & CSS 3Stephane PERES
 
Estrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e FunçõesEstrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e FunçõesLeinylson Fontinele
 
gestion Comptes Bancaire SpringBoot-Exemple.pdf
gestion Comptes Bancaire SpringBoot-Exemple.pdfgestion Comptes Bancaire SpringBoot-Exemple.pdf
gestion Comptes Bancaire SpringBoot-Exemple.pdfMohamedHassoun11
 
Document Object Model ( DOM)
Document Object Model ( DOM)Document Object Model ( DOM)
Document Object Model ( DOM)Abdelouahed Abdou
 
Beyond Java: 자바 8을 중심으로 본 자바의 혁신
Beyond Java: 자바 8을 중심으로 본 자바의 혁신Beyond Java: 자바 8을 중심으로 본 자바의 혁신
Beyond Java: 자바 8을 중심으로 본 자바의 혁신Sungchul Park
 
Nodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terNodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terEmerson Macedo
 

Tendances (20)

Introduction à JPA (Java Persistence API )
Introduction à JPA  (Java Persistence API )Introduction à JPA  (Java Persistence API )
Introduction à JPA (Java Persistence API )
 
Applications Android - cours 3 : Android Studio (Outil de développement)
Applications Android - cours 3 : Android Studio (Outil de développement)Applications Android - cours 3 : Android Studio (Outil de développement)
Applications Android - cours 3 : Android Studio (Outil de développement)
 
Creating Apps With .NET MAUI for iOS, Android, macOS + Windows
Creating AppsWith .NET MAUIfor iOS, Android, macOS + WindowsCreating AppsWith .NET MAUIfor iOS, Android, macOS + Windows
Creating Apps With .NET MAUI for iOS, Android, macOS + Windows
 
Tp java ee.pptx
Tp java ee.pptxTp java ee.pptx
Tp java ee.pptx
 
Support POO Java Deuxième Partie
Support POO Java Deuxième PartieSupport POO Java Deuxième Partie
Support POO Java Deuxième Partie
 
L'API Collector dans tous ses états
L'API Collector dans tous ses étatsL'API Collector dans tous ses états
L'API Collector dans tous ses états
 
Cours php -partie 1.pdf
Cours php -partie 1.pdfCours php -partie 1.pdf
Cours php -partie 1.pdf
 
Applications Android - cours 6 : Structure d’un projet Android
Applications Android - cours 6 :  Structure d’un projet AndroidApplications Android - cours 6 :  Structure d’un projet Android
Applications Android - cours 6 : Structure d’un projet Android
 
Introduction to Spring Boot
Introduction to Spring BootIntroduction to Spring Boot
Introduction to Spring Boot
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas Estrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Les Streams de Java 8
Les Streams de Java 8Les Streams de Java 8
Les Streams de Java 8
 
spring-boot-fr.pdf
spring-boot-fr.pdfspring-boot-fr.pdf
spring-boot-fr.pdf
 
Intégration Web HTML 5 & CSS 3
Intégration Web HTML 5 & CSS 3Intégration Web HTML 5 & CSS 3
Intégration Web HTML 5 & CSS 3
 
Php1 sesión 6
Php1 sesión 6Php1 sesión 6
Php1 sesión 6
 
New PHP Exploitation Techniques
New PHP Exploitation TechniquesNew PHP Exploitation Techniques
New PHP Exploitation Techniques
 
Estrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e FunçõesEstrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e Funções
 
gestion Comptes Bancaire SpringBoot-Exemple.pdf
gestion Comptes Bancaire SpringBoot-Exemple.pdfgestion Comptes Bancaire SpringBoot-Exemple.pdf
gestion Comptes Bancaire SpringBoot-Exemple.pdf
 
Document Object Model ( DOM)
Document Object Model ( DOM)Document Object Model ( DOM)
Document Object Model ( DOM)
 
Beyond Java: 자바 8을 중심으로 본 자바의 혁신
Beyond Java: 자바 8을 중심으로 본 자바의 혁신Beyond Java: 자바 8을 중심으로 본 자바의 혁신
Beyond Java: 자바 8을 중심으로 본 자바의 혁신
 
Nodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis terNodejs - A performance que eu sempre quis ter
Nodejs - A performance que eu sempre quis ter
 

En vedette

011 programando em python - conjuntos
011   programando em python - conjuntos011   programando em python - conjuntos
011 programando em python - conjuntosLeandro Barbosa
 
Mantendo seu Tempo a salvo com Python e Git
Mantendo seu Tempo a salvo com Python e GitMantendo seu Tempo a salvo com Python e Git
Mantendo seu Tempo a salvo com Python e GitMatheus Pereira
 
Análise dos campeões da Corrida de São Silvestre com Python
Análise dos campeões da Corrida de São Silvestre com PythonAnálise dos campeões da Corrida de São Silvestre com Python
Análise dos campeões da Corrida de São Silvestre com PythonWilson Freitas
 
07 programando em python - funcoes
 07   programando em python - funcoes 07   programando em python - funcoes
07 programando em python - funcoesVictor Marcelino
 
05 programando em python - tuplas e strings
 05   programando em python - tuplas e strings 05   programando em python - tuplas e strings
05 programando em python - tuplas e stringsVictor Marcelino
 
Matemática e Data Science
Matemática e Data ScienceMatemática e Data Science
Matemática e Data ScienceGabriel Lanzi
 
09 programando em python - classes
 09   programando em python - classes 09   programando em python - classes
09 programando em python - classesVictor Marcelino
 
Desmistificando Built-in Functions, Lambda e List Comprehension...
Desmistificando Built-in Functions, Lambda e List Comprehension...Desmistificando Built-in Functions, Lambda e List Comprehension...
Desmistificando Built-in Functions, Lambda e List Comprehension...Matheus Pereira
 
Técnica de mineração de dados uma revisão da literatura
Técnica de mineração de dados uma revisão da literaturaTécnica de mineração de dados uma revisão da literatura
Técnica de mineração de dados uma revisão da literaturaTalita Lima
 
Classficação de Texto e Naive Bayes
Classficação de Texto e Naive BayesClassficação de Texto e Naive Bayes
Classficação de Texto e Naive BayesAlexandre Duarte
 
03 programando em python - comandos basicos
 03   programando em python - comandos basicos 03   programando em python - comandos basicos
03 programando em python - comandos basicosVictor Marcelino
 
02 programando em python - tipos basicos
 02   programando em python - tipos basicos 02   programando em python - tipos basicos
02 programando em python - tipos basicosVictor Marcelino
 
InterCon 2012 - Metricas - Data Visualization
InterCon 2012 - Metricas - Data VisualizationInterCon 2012 - Metricas - Data Visualization
InterCon 2012 - Metricas - Data VisualizationiMasters
 
Batch File Programming
Batch File ProgrammingBatch File Programming
Batch File ProgrammingFrz Khan
 
08 programando em python - recursao
 08   programando em python - recursao 08   programando em python - recursao
08 programando em python - recursaoVictor Marcelino
 
Sql server 2008 r2 security overviewfor admins
Sql server 2008 r2 security   overviewfor adminsSql server 2008 r2 security   overviewfor admins
Sql server 2008 r2 security overviewfor adminsKlaudiia Jacome
 
00 programando em python - introducao
 00   programando em python - introducao 00   programando em python - introducao
00 programando em python - introducaoVictor Marcelino
 
10 programando em python - excecoes
 10   programando em python - excecoes 10   programando em python - excecoes
10 programando em python - excecoesVictor Marcelino
 

En vedette (20)

011 programando em python - conjuntos
011   programando em python - conjuntos011   programando em python - conjuntos
011 programando em python - conjuntos
 
Mantendo seu Tempo a salvo com Python e Git
Mantendo seu Tempo a salvo com Python e GitMantendo seu Tempo a salvo com Python e Git
Mantendo seu Tempo a salvo com Python e Git
 
Análise dos campeões da Corrida de São Silvestre com Python
Análise dos campeões da Corrida de São Silvestre com PythonAnálise dos campeões da Corrida de São Silvestre com Python
Análise dos campeões da Corrida de São Silvestre com Python
 
Alimentossaralau
AlimentossaralauAlimentossaralau
Alimentossaralau
 
07 programando em python - funcoes
 07   programando em python - funcoes 07   programando em python - funcoes
07 programando em python - funcoes
 
05 programando em python - tuplas e strings
 05   programando em python - tuplas e strings 05   programando em python - tuplas e strings
05 programando em python - tuplas e strings
 
Matemática e Data Science
Matemática e Data ScienceMatemática e Data Science
Matemática e Data Science
 
09 programando em python - classes
 09   programando em python - classes 09   programando em python - classes
09 programando em python - classes
 
Desmistificando Built-in Functions, Lambda e List Comprehension...
Desmistificando Built-in Functions, Lambda e List Comprehension...Desmistificando Built-in Functions, Lambda e List Comprehension...
Desmistificando Built-in Functions, Lambda e List Comprehension...
 
Técnica de mineração de dados uma revisão da literatura
Técnica de mineração de dados uma revisão da literaturaTécnica de mineração de dados uma revisão da literatura
Técnica de mineração de dados uma revisão da literatura
 
Classficação de Texto e Naive Bayes
Classficação de Texto e Naive BayesClassficação de Texto e Naive Bayes
Classficação de Texto e Naive Bayes
 
03 programando em python - comandos basicos
 03   programando em python - comandos basicos 03   programando em python - comandos basicos
03 programando em python - comandos basicos
 
02 programando em python - tipos basicos
 02   programando em python - tipos basicos 02   programando em python - tipos basicos
02 programando em python - tipos basicos
 
R version 3 Examples
R version 3 ExamplesR version 3 Examples
R version 3 Examples
 
InterCon 2012 - Metricas - Data Visualization
InterCon 2012 - Metricas - Data VisualizationInterCon 2012 - Metricas - Data Visualization
InterCon 2012 - Metricas - Data Visualization
 
Batch File Programming
Batch File ProgrammingBatch File Programming
Batch File Programming
 
08 programando em python - recursao
 08   programando em python - recursao 08   programando em python - recursao
08 programando em python - recursao
 
Sql server 2008 r2 security overviewfor admins
Sql server 2008 r2 security   overviewfor adminsSql server 2008 r2 security   overviewfor admins
Sql server 2008 r2 security overviewfor admins
 
00 programando em python - introducao
 00   programando em python - introducao 00   programando em python - introducao
00 programando em python - introducao
 
10 programando em python - excecoes
 10   programando em python - excecoes 10   programando em python - excecoes
10 programando em python - excecoes
 

Plus de Victor Marcelino

01 programando em python - sistemas de numeracao
 01   programando em python - sistemas de numeracao 01   programando em python - sistemas de numeracao
01 programando em python - sistemas de numeracaoVictor Marcelino
 
12 programando em python - modulos
 12   programando em python - modulos 12   programando em python - modulos
12 programando em python - modulosVictor Marcelino
 
14 programando em python - interfaces graficas com tk
 14   programando em python - interfaces graficas com tk 14   programando em python - interfaces graficas com tk
14 programando em python - interfaces graficas com tkVictor Marcelino
 
13 programando em python - arquivos
 13   programando em python - arquivos 13   programando em python - arquivos
13 programando em python - arquivosVictor Marcelino
 
11 programando em python - conjuntos
 11   programando em python - conjuntos 11   programando em python - conjuntos
11 programando em python - conjuntosVictor Marcelino
 
04 programando em python - listas
 04   programando em python - listas 04   programando em python - listas
04 programando em python - listasVictor Marcelino
 
Python for-unix-and-linux-system-administration
Python for-unix-and-linux-system-administrationPython for-unix-and-linux-system-administration
Python for-unix-and-linux-system-administrationVictor Marcelino
 

Plus de Victor Marcelino (8)

Aprendendo python
Aprendendo pythonAprendendo python
Aprendendo python
 
01 programando em python - sistemas de numeracao
 01   programando em python - sistemas de numeracao 01   programando em python - sistemas de numeracao
01 programando em python - sistemas de numeracao
 
12 programando em python - modulos
 12   programando em python - modulos 12   programando em python - modulos
12 programando em python - modulos
 
14 programando em python - interfaces graficas com tk
 14   programando em python - interfaces graficas com tk 14   programando em python - interfaces graficas com tk
14 programando em python - interfaces graficas com tk
 
13 programando em python - arquivos
 13   programando em python - arquivos 13   programando em python - arquivos
13 programando em python - arquivos
 
11 programando em python - conjuntos
 11   programando em python - conjuntos 11   programando em python - conjuntos
11 programando em python - conjuntos
 
04 programando em python - listas
 04   programando em python - listas 04   programando em python - listas
04 programando em python - listas
 
Python for-unix-and-linux-system-administration
Python for-unix-and-linux-system-administrationPython for-unix-and-linux-system-administration
Python for-unix-and-linux-system-administration
 

Dernier

3. Como será feita a apresentação do conteúdo destas abordagens? Serão debate...
3. Como será feita a apresentação do conteúdo destas abordagens? Serão debate...3. Como será feita a apresentação do conteúdo destas abordagens? Serão debate...
3. Como será feita a apresentação do conteúdo destas abordagens? Serão debate...azulassessoriaacadem3
 
Projeto escolar dia da água educação infantil e fundamental
Projeto escolar dia da água educação infantil e fundamentalProjeto escolar dia da água educação infantil e fundamental
Projeto escolar dia da água educação infantil e fundamentalDiana328805
 
Explique o modelo de determinação social da saúde proposto por Dahlgren e Whi...
Explique o modelo de determinação social da saúde proposto por Dahlgren e Whi...Explique o modelo de determinação social da saúde proposto por Dahlgren e Whi...
Explique o modelo de determinação social da saúde proposto por Dahlgren e Whi...excellenceeducaciona
 
MAPA - ADM - CIÊNCIAS SOCIAIS - 51/2024
MAPA - ADM - CIÊNCIAS SOCIAIS -  51/2024MAPA - ADM - CIÊNCIAS SOCIAIS -  51/2024
MAPA - ADM - CIÊNCIAS SOCIAIS - 51/2024excellenceeducaciona
 
Regimento da ADUFC-Seção Sindical do ANDES-SN
Regimento da ADUFC-Seção Sindical do ANDES-SNRegimento da ADUFC-Seção Sindical do ANDES-SN
Regimento da ADUFC-Seção Sindical do ANDES-SNADUFC S.Sind
 
LAPBOOK DO SISTEMA SOLAR colorido e.pdf
LAPBOOK  DO SISTEMA SOLAR colorido e.pdfLAPBOOK  DO SISTEMA SOLAR colorido e.pdf
LAPBOOK DO SISTEMA SOLAR colorido e.pdfVivianeFerreiradaSil5
 
01. Considerando as informações da imagem acima, explique de formas simples e...
01. Considerando as informações da imagem acima, explique de formas simples e...01. Considerando as informações da imagem acima, explique de formas simples e...
01. Considerando as informações da imagem acima, explique de formas simples e...atividademapa3
 
Antologia Literária NATAL em Versos 2023
Antologia Literária NATAL em Versos 2023Antologia Literária NATAL em Versos 2023
Antologia Literária NATAL em Versos 2023Nome Sobrenome
 
MATERNAL PLANEJAMENTO SEMANAL( TRABALHANDO A DENGUE).pptx
MATERNAL PLANEJAMENTO SEMANAL( TRABALHANDO A DENGUE).pptxMATERNAL PLANEJAMENTO SEMANAL( TRABALHANDO A DENGUE).pptx
MATERNAL PLANEJAMENTO SEMANAL( TRABALHANDO A DENGUE).pptxssuser3ec4ca
 
Farmacologia: interação fármaco receptor. Conceitos básicos em farmacologia
Farmacologia: interação fármaco receptor. Conceitos básicos em farmacologiaFarmacologia: interação fármaco receptor. Conceitos básicos em farmacologia
Farmacologia: interação fármaco receptor. Conceitos básicos em farmacologiajosemarquesfranco
 
Densidade e solubilidade 5 ano, aula 1 - 1° bimestre
Densidade e solubilidade 5 ano, aula 1 - 1° bimestreDensidade e solubilidade 5 ano, aula 1 - 1° bimestre
Densidade e solubilidade 5 ano, aula 1 - 1° bimestreAnaPaulaAmaral44
 
Trabalho Faculdade AD1 Didática - 2024 P
Trabalho Faculdade AD1 Didática - 2024 PTrabalho Faculdade AD1 Didática - 2024 P
Trabalho Faculdade AD1 Didática - 2024 PWallasTmara
 
Como bem castigar os escravos - Jorge Benci 1700.pdf
Como bem castigar os escravos - Jorge Benci 1700.pdfComo bem castigar os escravos - Jorge Benci 1700.pdf
Como bem castigar os escravos - Jorge Benci 1700.pdfTiagoGarros
 
Aula 2 - Beauty standards (Part 1) ula de inglês
Aula 2 - Beauty standards (Part 1) ula de inglêsAula 2 - Beauty standards (Part 1) ula de inglês
Aula 2 - Beauty standards (Part 1) ula de inglêsAldoBlfia1
 
Dengue - Atividades números naturais.docx
Dengue - Atividades números naturais.docxDengue - Atividades números naturais.docx
Dengue - Atividades números naturais.docxAndré Morária
 
Os impactos ambientais e suas consequências
Os impactos ambientais e suas consequênciasOs impactos ambientais e suas consequências
Os impactos ambientais e suas consequênciasLaianaLessaTeixeiraP
 

Dernier (20)

NBR 10520.2023. Citações. 1s24 (revisão em 09mar24).pdf
NBR 10520.2023. Citações. 1s24 (revisão em 09mar24).pdfNBR 10520.2023. Citações. 1s24 (revisão em 09mar24).pdf
NBR 10520.2023. Citações. 1s24 (revisão em 09mar24).pdf
 
3. Como será feita a apresentação do conteúdo destas abordagens? Serão debate...
3. Como será feita a apresentação do conteúdo destas abordagens? Serão debate...3. Como será feita a apresentação do conteúdo destas abordagens? Serão debate...
3. Como será feita a apresentação do conteúdo destas abordagens? Serão debate...
 
Projeto escolar dia da água educação infantil e fundamental
Projeto escolar dia da água educação infantil e fundamentalProjeto escolar dia da água educação infantil e fundamental
Projeto escolar dia da água educação infantil e fundamental
 
Explique o modelo de determinação social da saúde proposto por Dahlgren e Whi...
Explique o modelo de determinação social da saúde proposto por Dahlgren e Whi...Explique o modelo de determinação social da saúde proposto por Dahlgren e Whi...
Explique o modelo de determinação social da saúde proposto por Dahlgren e Whi...
 
Complementação: Aplicando as Normas da ABNT. 1s24.pdf
Complementação: Aplicando as Normas da ABNT. 1s24.pdfComplementação: Aplicando as Normas da ABNT. 1s24.pdf
Complementação: Aplicando as Normas da ABNT. 1s24.pdf
 
MAPA - ADM - CIÊNCIAS SOCIAIS - 51/2024
MAPA - ADM - CIÊNCIAS SOCIAIS -  51/2024MAPA - ADM - CIÊNCIAS SOCIAIS -  51/2024
MAPA - ADM - CIÊNCIAS SOCIAIS - 51/2024
 
Regimento da ADUFC-Seção Sindical do ANDES-SN
Regimento da ADUFC-Seção Sindical do ANDES-SNRegimento da ADUFC-Seção Sindical do ANDES-SN
Regimento da ADUFC-Seção Sindical do ANDES-SN
 
LAPBOOK DO SISTEMA SOLAR colorido e.pdf
LAPBOOK  DO SISTEMA SOLAR colorido e.pdfLAPBOOK  DO SISTEMA SOLAR colorido e.pdf
LAPBOOK DO SISTEMA SOLAR colorido e.pdf
 
01. Considerando as informações da imagem acima, explique de formas simples e...
01. Considerando as informações da imagem acima, explique de formas simples e...01. Considerando as informações da imagem acima, explique de formas simples e...
01. Considerando as informações da imagem acima, explique de formas simples e...
 
Antologia Literária NATAL em Versos 2023
Antologia Literária NATAL em Versos 2023Antologia Literária NATAL em Versos 2023
Antologia Literária NATAL em Versos 2023
 
MATERNAL PLANEJAMENTO SEMANAL( TRABALHANDO A DENGUE).pptx
MATERNAL PLANEJAMENTO SEMANAL( TRABALHANDO A DENGUE).pptxMATERNAL PLANEJAMENTO SEMANAL( TRABALHANDO A DENGUE).pptx
MATERNAL PLANEJAMENTO SEMANAL( TRABALHANDO A DENGUE).pptx
 
NBR 14724.2011. Trabalhos acadêmicos. 1s24.pdf
NBR 14724.2011. Trabalhos acadêmicos. 1s24.pdfNBR 14724.2011. Trabalhos acadêmicos. 1s24.pdf
NBR 14724.2011. Trabalhos acadêmicos. 1s24.pdf
 
Farmacologia: interação fármaco receptor. Conceitos básicos em farmacologia
Farmacologia: interação fármaco receptor. Conceitos básicos em farmacologiaFarmacologia: interação fármaco receptor. Conceitos básicos em farmacologia
Farmacologia: interação fármaco receptor. Conceitos básicos em farmacologia
 
Densidade e solubilidade 5 ano, aula 1 - 1° bimestre
Densidade e solubilidade 5 ano, aula 1 - 1° bimestreDensidade e solubilidade 5 ano, aula 1 - 1° bimestre
Densidade e solubilidade 5 ano, aula 1 - 1° bimestre
 
Trabalho Faculdade AD1 Didática - 2024 P
Trabalho Faculdade AD1 Didática - 2024 PTrabalho Faculdade AD1 Didática - 2024 P
Trabalho Faculdade AD1 Didática - 2024 P
 
Como bem castigar os escravos - Jorge Benci 1700.pdf
Como bem castigar os escravos - Jorge Benci 1700.pdfComo bem castigar os escravos - Jorge Benci 1700.pdf
Como bem castigar os escravos - Jorge Benci 1700.pdf
 
Jogo dos Materiais - final Domínio Materiais.pdf
Jogo dos Materiais - final Domínio Materiais.pdfJogo dos Materiais - final Domínio Materiais.pdf
Jogo dos Materiais - final Domínio Materiais.pdf
 
Aula 2 - Beauty standards (Part 1) ula de inglês
Aula 2 - Beauty standards (Part 1) ula de inglêsAula 2 - Beauty standards (Part 1) ula de inglês
Aula 2 - Beauty standards (Part 1) ula de inglês
 
Dengue - Atividades números naturais.docx
Dengue - Atividades números naturais.docxDengue - Atividades números naturais.docx
Dengue - Atividades números naturais.docx
 
Os impactos ambientais e suas consequências
Os impactos ambientais e suas consequênciasOs impactos ambientais e suas consequências
Os impactos ambientais e suas consequências
 

06 programando em python - dicionarios

  • 2. 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
  • 3. 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”]
  • 4. 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
  • 5. 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}
  • 6. 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 . . . Y = {} Y [10] = 5 # ERRO! # OK!
  • 7. 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
  • 8. 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
  • 9. 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'
  • 10. Método clear  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'}
  • 11. Método copy  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]}
  • 12. 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}
  • 13. Método get  get(chave,valor)  Obtém o conteúdo de chave  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
  • 14. 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
  • 15. 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']
  • 16. 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}
  • 17. Método popitem  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'}
  • 18. 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(a=7,c="xxx") >>> x {'a': 7, 'c': 'xxx', 'b': 7, 'z': 9}