![Page 1: Programação Avançada Tuplas, strings e dicionários](https://reader036.vdocuments.com.br/reader036/viewer/2022082614/56815a7d550346895dc7e624/html5/thumbnails/1.jpg)
Programação AvançadaTuplas, strings e dicionários
Prof. Natalia Castro FernandesMestrado em Telecomunicações – UFF
2º semestre/2012
![Page 2: Programação Avançada Tuplas, strings e dicionários](https://reader036.vdocuments.com.br/reader036/viewer/2022082614/56815a7d550346895dc7e624/html5/thumbnails/2.jpg)
Relembrando...Tipos primitivos
Simples (int, long, float, complex, string) Compostos
Listas Tuplas Dicionários Conjuntos
Definidos pelo usuárioClasses
![Page 3: Programação Avançada Tuplas, strings e dicionários](https://reader036.vdocuments.com.br/reader036/viewer/2022082614/56815a7d550346895dc7e624/html5/thumbnails/3.jpg)
TuplasSequências imutáveis de elementosFuncionalidades semelhantes às listas Definição de uma tupla
>>>T = (1,2,3)>>>T[0]1
Tupla vazia ()Parênteses são opcionais, se não provocar
ambiguidade(10) inteiro(10,) Tupla10, Tupla
Se tiver apenas um elemento, é preciso colocar uma vírgula
após o elemento.
![Page 4: Programação Avançada Tuplas, strings e dicionários](https://reader036.vdocuments.com.br/reader036/viewer/2022082614/56815a7d550346895dc7e624/html5/thumbnails/4.jpg)
Função tupleTransforma um elemento em uma tupla
>>>tuple (“abcd”)(‘a’, ‘b’, ‘c’, ‘d’)>>>tuple([1,2,3])(1,2,3)
![Page 5: Programação Avançada Tuplas, strings e dicionários](https://reader036.vdocuments.com.br/reader036/viewer/2022082614/56815a7d550346895dc7e624/html5/thumbnails/5.jpg)
Utilização das tuplasEstruturas que demandam valores imutáveis
Chaves de dicionáriosFunções com números variáveis de argumentosFormatação de texto
![Page 6: Programação Avançada Tuplas, strings e dicionários](https://reader036.vdocuments.com.br/reader036/viewer/2022082614/56815a7d550346895dc7e624/html5/thumbnails/6.jpg)
Formatação de textoFormatação
Usado para criar strings misturando texto e valores de variáveis
Formato String_template % valor String_template contém texto e indicadores de variáveis
%s string %d decimal %f float etc.
Exemplo “Decimal %d” % 10 Decimal 10 “Decimal %d float %f” % (10,10) Decimal 10 float 10.0000 “%s tirou nota %d” % (‘João’, 10) João tirou nota 10
Mais detalhes sobre formatação em http://docs.python.org/library/string.html
![Page 7: Programação Avançada Tuplas, strings e dicionários](https://reader036.vdocuments.com.br/reader036/viewer/2022082614/56815a7d550346895dc7e624/html5/thumbnails/7.jpg)
Módulo stringAuxilia a manipulação de stringsPrincipais funções da classe string
String.find(substring) Retorna o índice da primeira aparição de substring em string
String.join(sequência_de_strings) Retorna uma sequência de strings em uma string, utilizando como separador o valor de String Ex: “/”.join((‘1’, ‘2’, ‘3’))
![Page 8: Programação Avançada Tuplas, strings e dicionários](https://reader036.vdocuments.com.br/reader036/viewer/2022082614/56815a7d550346895dc7e624/html5/thumbnails/8.jpg)
Módulo stringString.replace(velho, novo) Retorna uma
string com todas as instâncias de velho substituídas por novo em String
String.split(separador) Retorna uma lista com as partes de String separadas de acordo com separador Ex: >>>a = “Frase de teste para entender o split”
>>>a.split(‘ ‘)[“Frase”, “de”, “teste”, “para”, “entender”, “o”,
“split”]
![Page 9: Programação Avançada Tuplas, strings e dicionários](https://reader036.vdocuments.com.br/reader036/viewer/2022082614/56815a7d550346895dc7e624/html5/thumbnails/9.jpg)
DicionáriosEstruturas semelhantes às listas, mas que:
Não tem ordemO índice (ou chave) pode ser de qualquer tipo imutável
Formato{ chave1:conteúdo1, ... chaveN:conteúdoN}
O conteúdo associado a uma chave pode ser alteradoA chave não pode ser alteradaEx: dicionario[chave]=“Novo valor”
Novos valores podem ser acrescentados pela adição de uma chave ainda não definida
![Page 10: Programação Avançada Tuplas, strings e dicionários](https://reader036.vdocuments.com.br/reader036/viewer/2022082614/56815a7d550346895dc7e624/html5/thumbnails/10.jpg)
Listas x DicionáriosEx: Criando uma agenda com listas
Criar duas listas, nome e telefone, que armazenam o nome e o telefone no mesmo índice Para acrescentar “Joao” com telefone “5019”:
nome+= “Joao” telefone+=“5019”
Para encontrar o telefone de “Joao”: Tel = telefone[nome.index[“Joao”]]
Função de listas que diz o índice dado o valor buscado
Nome tel
Joao 5019Maria 2030Jose 1818
i=0i=1i=2
Adiciona elemento no fim da lista
![Page 11: Programação Avançada Tuplas, strings e dicionários](https://reader036.vdocuments.com.br/reader036/viewer/2022082614/56815a7d550346895dc7e624/html5/thumbnails/11.jpg)
Listas x DicionáriosEx: Criando uma agenda com dicionários
Criar um dicionário cuja chave é o nome e o conteúdo é o telefone Para acrescentar “Joao” com telefone “5019”:
telefone[“Joao”] = “5019” Para encontrar o telefone de “Joao”:
Tel = telefone[“Joao”]
Nome tel
Joao 5019Maria 2030Jose 1818
i=0i=1i=2
![Page 12: Programação Avançada Tuplas, strings e dicionários](https://reader036.vdocuments.com.br/reader036/viewer/2022082614/56815a7d550346895dc7e624/html5/thumbnails/12.jpg)
Exemplos
![Page 13: Programação Avançada Tuplas, strings e dicionários](https://reader036.vdocuments.com.br/reader036/viewer/2022082614/56815a7d550346895dc7e624/html5/thumbnails/13.jpg)
Função dictUsada para criar dicionários
Argumentos Lista de tuplas (chave, conteúdo) Ou sequência de itens no formato chave=valor
Nesse caso, as chaves TEM que ser strings sem aspas
![Page 14: Programação Avançada Tuplas, strings e dicionários](https://reader036.vdocuments.com.br/reader036/viewer/2022082614/56815a7d550346895dc7e624/html5/thumbnails/14.jpg)
Uso do forComando for pode ser usado para iterar
sobre todas as chaves de um dicionário
![Page 15: Programação Avançada Tuplas, strings e dicionários](https://reader036.vdocuments.com.br/reader036/viewer/2022082614/56815a7d550346895dc7e624/html5/thumbnails/15.jpg)
Classe dictDicionario.clear() Remove todos os elementos
do dicionário Atenção:
>>> x = { "Joao":"a", "Maria":"b" }>>> y = x>>> x.clear()>>> print x,y{} {}
>>> x = { "Joao":"a", "Maria":"b" }>>> y = x>>> x = {}>>> print x,y{} {'Joao': 'a', 'Maria': 'b'}
Método clear Atribuição de dicionário vazio
![Page 16: Programação Avançada Tuplas, strings e dicionários](https://reader036.vdocuments.com.br/reader036/viewer/2022082614/56815a7d550346895dc7e624/html5/thumbnails/16.jpg)
Classe dictfromkeys(lista,valor) Retorna um novo dicionário
com as chaves em listas associadas à valor Valor vale, por default, None Exemplos
>>> {}.fromkeys([2,3]) {2: None, 3: None}
>>> dict.fromkeys(["Joao","Maria"],0) {'Joao': 0, 'Maria': 0}
>>>dict.fromkeys([(["Joao","Maria"]) {'Joao': None, 'Maria': None}
![Page 17: Programação Avançada Tuplas, strings e dicionários](https://reader036.vdocuments.com.br/reader036/viewer/2022082614/56815a7d550346895dc7e624/html5/thumbnails/17.jpg)
Classe dictget(chave,valor)
Obtém o conteúdo de chaveNão causa erro caso chave não exista: retorna
valorSe valor não for especificado, chaves
inexistentes retornam None
![Page 18: Programação Avançada Tuplas, strings e dicionários](https://reader036.vdocuments.com.br/reader036/viewer/2022082614/56815a7d550346895dc7e624/html5/thumbnails/18.jpg)
Classe dictDicionario.has_key(chave) Retorna True se a
chave existe no Dicionário e False, caso não exista
Dicionario.items() Retorna uma lista com todos os pares chave/conteúdo do dicionário
Dicionario.keys() Retorna uma lista com todas as chaves do dicionário
Dicionario.values() Retorna uma lista com todos os valores do dicionário
![Page 19: Programação Avançada Tuplas, strings e dicionários](https://reader036.vdocuments.com.br/reader036/viewer/2022082614/56815a7d550346895dc7e624/html5/thumbnails/19.jpg)
Classe dictDicionario.pop(chave) Retorna o valor de
chave e remove o par chave/valor do dicionário
Dicionario.popitem() Retorna e remove um par chave/valor aleatório do dicionário
![Page 20: Programação Avançada Tuplas, strings e dicionários](https://reader036.vdocuments.com.br/reader036/viewer/2022082614/56815a7d550346895dc7e624/html5/thumbnails/20.jpg)
Funções embutidaslen(dicionario) Retorna o tamanho do
dicionáriokey in dicionario Retorna True se a key
pertence ao dicionáriokey not in dicionario Retorna True se a key
não pertence ao dicionário