SlideShare a Scribd company logo
1 of 18
Download to read offline
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}

More Related Content

What's hot

What's hot (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
 

Viewers also liked

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 Empresarialritumidia
 
Estadistica administrativa
Estadistica administrativaEstadistica administrativa
Estadistica administrativaMaestros Online
 
Probabilidad y estadísticas tm
Probabilidad y estadísticas tmProbabilidad y estadísticas tm
Probabilidad y estadísticas tmMaestros Online
 
Importancia da mata
Importancia da mataImportancia da mata
Importancia da matamanibenites
 
Probabilidad y estadisticas tec nuevo leon
Probabilidad y estadisticas tec nuevo leonProbabilidad y estadisticas tec nuevo leon
Probabilidad y estadisticas tec nuevo leonMaestros Online
 
Introduccion a la carrera so13151
Introduccion a la carrera so13151Introduccion a la carrera so13151
Introduccion a la carrera so13151Maestros Online
 
Investigacion y metodo cientifico
Investigacion y metodo cientificoInvestigacion y metodo cientifico
Investigacion y metodo cientificoMaestros Online
 
Computacion 1 cb9101 2013
Computacion 1 cb9101 2013Computacion 1 cb9101 2013
Computacion 1 cb9101 2013Maestros Online
 
Administracion financiera fz09301
Administracion financiera fz09301Administracion financiera fz09301
Administracion financiera fz09301Maestros Online
 

Viewers also liked (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
 

Similar to Programando em python dicionarios

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 - funcoesLeandro 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 PythonDiogo 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 Pythondmmartins
 
Estruturas de dados em Python
Estruturas de dados em PythonEstruturas de dados em Python
Estruturas de dados em PythonRicardo Paiva
 
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 07Yuri Bispo
 
Minicurso Introdução ao mongoDB SCTI
Minicurso Introdução ao mongoDB SCTIMinicurso Introdução ao mongoDB SCTI
Minicurso Introdução ao mongoDB SCTIBruna Pereira
 
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.xNorton 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 ArraysLoiane Groner
 
MiniCurso Jquery - IV SimSis
MiniCurso Jquery - IV SimSisMiniCurso Jquery - IV SimSis
MiniCurso Jquery - IV SimSisThiago Miranda
 

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

More from 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_javasamuelthiago
 
Introducao a poo_com_blue_j
Introducao a poo_com_blue_jIntroducao a poo_com_blue_j
Introducao a poo_com_blue_jsamuelthiago
 
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
 

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

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}