SlideShare uma empresa Scribd logo
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'
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}

Mais conteúdo relacionado

Mais procurados

NotORM
NotORMNotORM
NotORM
Tiago Davi
 
J query javascript para seres humanos
J query   javascript para seres humanosJ query   javascript para seres humanos
J query javascript para seres humanos
nobios
 
NoSQL e MongoDB - ETEC
NoSQL e MongoDB - ETECNoSQL e MongoDB - ETEC
NoSQL e MongoDB - ETEC
Jefferson Queiroz
 
Minicurso de jQuery
Minicurso de jQueryMinicurso de jQuery
Minicurso de jQuery
André Willik Valenti
 
PowerShell e Active Directory
PowerShell e Active DirectoryPowerShell e Active Directory
PowerShell e Active Directory
Wellington Oliveira
 
Palestra Novidades da linguagem C# 6
Palestra Novidades da linguagem C# 6Palestra Novidades da linguagem C# 6
Palestra Novidades da linguagem C# 6
Renato Haddad
 
Python aula 2
Python aula 2Python aula 2
Python aula 2
Natã Melo
 
meetup adopting java8
meetup adopting java8meetup adopting java8
meetup adopting java8
Filipe Portes
 
jQuery na Prática!
jQuery na Prática!jQuery na Prática!
jQuery na Prática!
José Alexandre Macedo
 
Aula 3 - Java Prof.ª Cristiane Fidelix
Aula 3 -  Java Prof.ª Cristiane FidelixAula 3 -  Java Prof.ª Cristiane Fidelix
Aula 3 - Java Prof.ª Cristiane Fidelix
Cris Fidelix
 
python
pythonpython
Escrevendo plugins JQuery
Escrevendo plugins JQueryEscrevendo plugins JQuery
Escrevendo plugins JQuery
Zigotto Tecnologia
 
Lazy Evaluation em Scala
Lazy Evaluation em ScalaLazy Evaluation em Scala
Lazy Evaluation em Scala
pmatiello
 
004 programando em python - listas
004   programando em python - listas004   programando em python - listas
004 programando em python - listas
Leandro Barbosa
 
MongoDB
MongoDBMongoDB
MongoDB
Isaac Garcia
 
Acesso a banco de dados com JDBC
Acesso a banco de dados com JDBCAcesso a banco de dados com JDBC
Acesso a banco de dados com JDBC
Eduardo Mendes
 
Grupo2
Grupo2Grupo2
Proxy, Man-In-The-Middle e testes
Proxy, Man-In-The-Middle e testesProxy, Man-In-The-Middle e testes
Proxy, Man-In-The-Middle e testes
Stanislaw Pusep
 
SPL Datastructures
SPL DatastructuresSPL Datastructures
SPL Datastructures
Felipe Ribeiro
 
Aula 12 Relatório - Tabelas
Aula 12   Relatório - TabelasAula 12   Relatório - Tabelas
Aula 12 Relatório - Tabelas
Dalton Martins
 

Mais procurados (20)

NotORM
NotORMNotORM
NotORM
 
J query javascript para seres humanos
J query   javascript para seres humanosJ query   javascript para seres humanos
J query javascript para seres humanos
 
NoSQL e MongoDB - ETEC
NoSQL e MongoDB - ETECNoSQL e MongoDB - ETEC
NoSQL e MongoDB - ETEC
 
Minicurso de jQuery
Minicurso de jQueryMinicurso de jQuery
Minicurso de jQuery
 
PowerShell e Active Directory
PowerShell e Active DirectoryPowerShell e Active Directory
PowerShell e Active Directory
 
Palestra Novidades da linguagem C# 6
Palestra Novidades da linguagem C# 6Palestra Novidades da linguagem C# 6
Palestra Novidades da linguagem C# 6
 
Python aula 2
Python aula 2Python aula 2
Python aula 2
 
meetup adopting java8
meetup adopting java8meetup adopting java8
meetup adopting java8
 
jQuery na Prática!
jQuery na Prática!jQuery na Prática!
jQuery na Prática!
 
Aula 3 - Java Prof.ª Cristiane Fidelix
Aula 3 -  Java Prof.ª Cristiane FidelixAula 3 -  Java Prof.ª Cristiane Fidelix
Aula 3 - Java Prof.ª Cristiane Fidelix
 
python
pythonpython
python
 
Escrevendo plugins JQuery
Escrevendo plugins JQueryEscrevendo plugins JQuery
Escrevendo plugins JQuery
 
Lazy Evaluation em Scala
Lazy Evaluation em ScalaLazy Evaluation em Scala
Lazy Evaluation em Scala
 
004 programando em python - listas
004   programando em python - listas004   programando em python - listas
004 programando em python - listas
 
MongoDB
MongoDBMongoDB
MongoDB
 
Acesso a banco de dados com JDBC
Acesso a banco de dados com JDBCAcesso a banco de dados com JDBC
Acesso a banco de dados com JDBC
 
Grupo2
Grupo2Grupo2
Grupo2
 
Proxy, Man-In-The-Middle e testes
Proxy, Man-In-The-Middle e testesProxy, Man-In-The-Middle e testes
Proxy, Man-In-The-Middle e testes
 
SPL Datastructures
SPL DatastructuresSPL Datastructures
SPL Datastructures
 
Aula 12 Relatório - Tabelas
Aula 12   Relatório - TabelasAula 12   Relatório - Tabelas
Aula 12 Relatório - Tabelas
 

Destaque

O inferno astral de sergio cabral
O inferno astral de sergio cabralO inferno astral de sergio cabral
O inferno astral de sergio cabralesquiber
 
MBA em Planejamento Empresarial
MBA em Planejamento EmpresarialMBA em Planejamento Empresarial
MBA em Planejamento Empresarial
ritumidia
 
Cap04b
Cap04bCap04b
Cap04b
samuelthiago
 
Estadistica administrativa
Estadistica administrativaEstadistica administrativa
Estadistica administrativa
Maestros Online
 
Probabilidad y estadísticas tm
Probabilidad y estadísticas tmProbabilidad y estadísticas tm
Probabilidad y estadísticas tm
Maestros Online
 
Importancia da mata
Importancia da mataImportancia da mata
Importancia da mata
manibenites
 
Computación 1 cb09106
Computación 1 cb09106Computación 1 cb09106
Computación 1 cb09106
Maestros Online
 
Probabilidad y estadisticas tec nuevo leon
Probabilidad y estadisticas tec nuevo leonProbabilidad y estadisticas tec nuevo leon
Probabilidad y estadisticas tec nuevo leon
Maestros Online
 
Introduccion a la carrera so13151
Introduccion a la carrera so13151Introduccion a la carrera so13151
Introduccion a la carrera so13151
Maestros Online
 
Investigacion y metodo cientifico
Investigacion y metodo cientificoInvestigacion y metodo cientifico
Investigacion y metodo cientifico
Maestros Online
 
Metologia pequisa
Metologia pequisaMetologia pequisa
Metologia pequisa
Marta Elini Borges
 
Cap01a
Cap01aCap01a
Cap01a
samuelthiago
 
Matematicas i cn09001
Matematicas i cn09001Matematicas i cn09001
Matematicas i cn09001
Maestros Online
 
Computacion 1 cb9101 2013
Computacion 1 cb9101 2013Computacion 1 cb9101 2013
Computacion 1 cb9101 2013
Maestros Online
 
Matematicas i 09101
Matematicas i 09101Matematicas i 09101
Matematicas i 09101
Maestros Online
 
Censura
CensuraCensura
Administracion financiera fz09301
Administracion financiera fz09301Administracion financiera fz09301
Administracion financiera fz09301
Maestros Online
 
MScAlastalo
MScAlastaloMScAlastalo
MScAlastalo
Ari Alastalo
 
Derecho privado
Derecho privadoDerecho privado
Derecho privado
Maestros Online
 

Destaque (20)

O inferno astral de sergio cabral
O inferno astral de sergio cabralO inferno astral de sergio cabral
O inferno astral de sergio cabral
 
MBA em Planejamento Empresarial
MBA em Planejamento EmpresarialMBA em Planejamento Empresarial
MBA em Planejamento Empresarial
 
Cap04b
Cap04bCap04b
Cap04b
 
Estadistica administrativa
Estadistica administrativaEstadistica administrativa
Estadistica administrativa
 
Probabilidad y estadísticas tm
Probabilidad y estadísticas tmProbabilidad y estadísticas tm
Probabilidad y estadísticas tm
 
Apresentação1
Apresentação1Apresentação1
Apresentação1
 
Importancia da mata
Importancia da mataImportancia da mata
Importancia da mata
 
Computación 1 cb09106
Computación 1 cb09106Computación 1 cb09106
Computación 1 cb09106
 
Probabilidad y estadisticas tec nuevo leon
Probabilidad y estadisticas tec nuevo leonProbabilidad y estadisticas tec nuevo leon
Probabilidad y estadisticas tec nuevo leon
 
Introduccion a la carrera so13151
Introduccion a la carrera so13151Introduccion a la carrera so13151
Introduccion a la carrera so13151
 
Investigacion y metodo cientifico
Investigacion y metodo cientificoInvestigacion y metodo cientifico
Investigacion y metodo cientifico
 
Metologia pequisa
Metologia pequisaMetologia pequisa
Metologia pequisa
 
Cap01a
Cap01aCap01a
Cap01a
 
Matematicas i cn09001
Matematicas i cn09001Matematicas i cn09001
Matematicas i cn09001
 
Computacion 1 cb9101 2013
Computacion 1 cb9101 2013Computacion 1 cb9101 2013
Computacion 1 cb9101 2013
 
Matematicas i 09101
Matematicas i 09101Matematicas i 09101
Matematicas i 09101
 
Censura
CensuraCensura
Censura
 
Administracion financiera fz09301
Administracion financiera fz09301Administracion financiera fz09301
Administracion financiera fz09301
 
MScAlastalo
MScAlastaloMScAlastalo
MScAlastalo
 
Derecho privado
Derecho privadoDerecho privado
Derecho privado
 

Semelhante a Programando em python dicionarios

Programando em Python : Dicionários
Programando em Python :  DicionáriosProgramando em Python :  Dicionários
Programando em Python : Dicionários
IFRN -campus Ipanguaçu
 
Python 02
Python 02Python 02
Python 02
Bruno Catão
 
Linguagem R
Linguagem RLinguagem R
Linguagem R
Anderson Sanches
 
Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)
Luciano Ramalho
 
007 programando em python - funcoes
007   programando em python - funcoes007   programando em python - funcoes
007 programando em python - funcoes
Leandro Barbosa
 
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop PythonIEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
Diogo Gomes
 
Introdução à Linguagem de programação Python
Introdução à Linguagem de programação PythonIntrodução à Linguagem de programação Python
Introdução à Linguagem de programação Python
dmmartins
 
Estruturas de dados em Python
Estruturas de dados em PythonEstruturas de dados em Python
Estruturas de dados em Python
Ricardo Paiva
 
jQuery Simplificando o JavaScript
jQuery Simplificando o JavaScriptjQuery Simplificando o JavaScript
jQuery Simplificando o JavaScript
Everaldo Wanderlei Uavniczak
 
JQuery
JQuery JQuery
Programação web ii aulas 06 e 07
Programação web ii   aulas 06 e 07Programação web ii   aulas 06 e 07
Programação web ii aulas 06 e 07
Yuri Bispo
 
Python Class
Python ClassPython Class
Python Class
Romualdo Andre
 
Slide_Python.pdf
Slide_Python.pdfSlide_Python.pdf
Slide_Python.pdf
HevertonSCosta
 
Minicurso Introdução ao mongoDB SCTI
Minicurso Introdução ao mongoDB SCTIMinicurso Introdução ao mongoDB SCTI
Minicurso Introdução ao mongoDB SCTI
Bruna Pereira
 
MongoDB - Iniciando e Conhecendo
MongoDB - Iniciando e ConhecendoMongoDB - Iniciando e Conhecendo
MongoDB - Iniciando e Conhecendo
Edemilson Gonçalves
 
NoSQL e MongoDB
NoSQL e MongoDBNoSQL e MongoDB
NoSQL e MongoDB
Jefferson Queiroz
 
Programação Web com PHP 7.x
Programação Web com PHP 7.xProgramação Web com PHP 7.x
Programação Web com PHP 7.x
Norton Guimarães
 
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e ArraysEstrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
Loiane Groner
 
Introdução ao JQuery e AJAX
Introdução ao JQuery e AJAXIntrodução ao JQuery e AJAX
Introdução ao JQuery e AJAX
Sérgio Souza Costa
 
MiniCurso Jquery - IV SimSis
MiniCurso Jquery - IV SimSisMiniCurso Jquery - IV SimSis
MiniCurso Jquery - IV SimSis
Thiago Miranda
 

Semelhante a Programando em python dicionarios (20)

Programando em Python : Dicionários
Programando em Python :  DicionáriosProgramando em Python :  Dicionários
Programando em Python : Dicionários
 
Python 02
Python 02Python 02
Python 02
 
Linguagem R
Linguagem RLinguagem R
Linguagem R
 
Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)
 
007 programando em python - funcoes
007   programando em python - funcoes007   programando em python - funcoes
007 programando em python - funcoes
 
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop PythonIEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
 
Introdução à Linguagem de programação Python
Introdução à Linguagem de programação PythonIntrodução à Linguagem de programação Python
Introdução à Linguagem de programação Python
 
Estruturas de dados em Python
Estruturas de dados em PythonEstruturas de dados em Python
Estruturas de dados em Python
 
jQuery Simplificando o JavaScript
jQuery Simplificando o JavaScriptjQuery Simplificando o JavaScript
jQuery Simplificando o JavaScript
 
JQuery
JQuery JQuery
JQuery
 
Programação web ii aulas 06 e 07
Programação web ii   aulas 06 e 07Programação web ii   aulas 06 e 07
Programação web ii aulas 06 e 07
 
Python Class
Python ClassPython Class
Python Class
 
Slide_Python.pdf
Slide_Python.pdfSlide_Python.pdf
Slide_Python.pdf
 
Minicurso Introdução ao mongoDB SCTI
Minicurso Introdução ao mongoDB SCTIMinicurso Introdução ao mongoDB SCTI
Minicurso Introdução ao mongoDB SCTI
 
MongoDB - Iniciando e Conhecendo
MongoDB - Iniciando e ConhecendoMongoDB - Iniciando e Conhecendo
MongoDB - Iniciando e Conhecendo
 
NoSQL e MongoDB
NoSQL e MongoDBNoSQL e MongoDB
NoSQL e MongoDB
 
Programação Web com PHP 7.x
Programação Web com PHP 7.xProgramação Web com PHP 7.x
Programação Web com PHP 7.x
 
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e ArraysEstrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
 
Introdução ao JQuery e AJAX
Introdução ao JQuery e AJAXIntrodução ao JQuery e AJAX
Introdução ao JQuery e AJAX
 
MiniCurso Jquery - IV SimSis
MiniCurso Jquery - IV SimSisMiniCurso Jquery - IV SimSis
MiniCurso Jquery - IV SimSis
 

Mais de samuelthiago

Html básico
Html básicoHtml básico
Html básico
samuelthiago
 
Interface grafica em_java_parte_v
Interface grafica em_java_parte_vInterface grafica em_java_parte_v
Interface grafica em_java_parte_vsamuelthiago
 
Interface grafica em_java_parte_iv
Interface grafica em_java_parte_ivInterface grafica em_java_parte_iv
Interface grafica em_java_parte_ivsamuelthiago
 
Interface grafica em_java_parte_iii
Interface grafica em_java_parte_iiiInterface grafica em_java_parte_iii
Interface grafica em_java_parte_iiisamuelthiago
 
Interface grafica em_java_parte_ii
Interface grafica em_java_parte_iiInterface grafica em_java_parte_ii
Interface grafica em_java_parte_iisamuelthiago
 
Interface grafica em_java_parte_i
Interface grafica em_java_parte_iInterface grafica em_java_parte_i
Interface grafica em_java_parte_isamuelthiago
 
Poo interacao entre_objetos_blue_j_ii
Poo interacao entre_objetos_blue_j_iiPoo interacao entre_objetos_blue_j_ii
Poo interacao entre_objetos_blue_j_iisamuelthiago
 
Introducao a poo_com_blue_j
Introducao a poo_com_blue_jIntroducao a poo_com_blue_j
Introducao a poo_com_blue_jsamuelthiago
 
Projeto calculadora em_java
Projeto calculadora em_javaProjeto calculadora em_java
Projeto calculadora em_java
samuelthiago
 
Introducao a poo_com_blue_j
Introducao a poo_com_blue_jIntroducao a poo_com_blue_j
Introducao a poo_com_blue_j
samuelthiago
 
01 02 introdução aos bancos de dados (slides)
01 02 introdução aos bancos de dados (slides)01 02 introdução aos bancos de dados (slides)
01 02 introdução aos bancos de dados (slides)
samuelthiago
 
Java 08
Java 08Java 08
Java 08
samuelthiago
 
Java 07
Java 07Java 07
Java 07
samuelthiago
 
Java 06
Java 06Java 06
Java 06
samuelthiago
 
Java 05
Java 05Java 05
Java 05
samuelthiago
 
Java 04
Java 04Java 04
Java 04
samuelthiago
 
Java 03
Java 03Java 03
Java 03
samuelthiago
 
Java 02
Java 02Java 02
Java 02
samuelthiago
 
Java 01
Java 01Java 01
Java 01
samuelthiago
 

Mais de samuelthiago (20)

Eclipse i (1)
Eclipse i (1)Eclipse i (1)
Eclipse i (1)
 
Html básico
Html básicoHtml básico
Html básico
 
Interface grafica em_java_parte_v
Interface grafica em_java_parte_vInterface grafica em_java_parte_v
Interface grafica em_java_parte_v
 
Interface grafica em_java_parte_iv
Interface grafica em_java_parte_ivInterface grafica em_java_parte_iv
Interface grafica em_java_parte_iv
 
Interface grafica em_java_parte_iii
Interface grafica em_java_parte_iiiInterface grafica em_java_parte_iii
Interface grafica em_java_parte_iii
 
Interface grafica em_java_parte_ii
Interface grafica em_java_parte_iiInterface grafica em_java_parte_ii
Interface grafica em_java_parte_ii
 
Interface grafica em_java_parte_i
Interface grafica em_java_parte_iInterface grafica em_java_parte_i
Interface grafica em_java_parte_i
 
Poo interacao entre_objetos_blue_j_ii
Poo interacao entre_objetos_blue_j_iiPoo interacao entre_objetos_blue_j_ii
Poo interacao entre_objetos_blue_j_ii
 
Introducao a poo_com_blue_j
Introducao a poo_com_blue_jIntroducao a poo_com_blue_j
Introducao a poo_com_blue_j
 
Projeto calculadora em_java
Projeto calculadora em_javaProjeto calculadora em_java
Projeto calculadora em_java
 
Introducao a poo_com_blue_j
Introducao a poo_com_blue_jIntroducao a poo_com_blue_j
Introducao a poo_com_blue_j
 
01 02 introdução aos bancos de dados (slides)
01 02 introdução aos bancos de dados (slides)01 02 introdução aos bancos de dados (slides)
01 02 introdução aos bancos de dados (slides)
 
Java 08
Java 08Java 08
Java 08
 
Java 07
Java 07Java 07
Java 07
 
Java 06
Java 06Java 06
Java 06
 
Java 05
Java 05Java 05
Java 05
 
Java 04
Java 04Java 04
Java 04
 
Java 03
Java 03Java 03
Java 03
 
Java 02
Java 02Java 02
Java 02
 
Java 01
Java 01Java 01
Java 01
 

Último

PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 

Último (8)

PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 

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 # ERRO! . . . Y = {} Y [10] = 5 # 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}