Programação AvançadaTuplas, strings e dicionários
Prof. Natalia Castro FernandesMestrado em Telecomunicações – UFF
2º semestre/2012
Relembrando...Tipos primitivos
Simples (int, long, float, complex, string) Compostos
Listas Tuplas Dicionários Conjuntos
Definidos pelo usuárioClasses
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.
Função tupleTransforma um elemento em uma tupla
>>>tuple (“abcd”)(‘a’, ‘b’, ‘c’, ‘d’)>>>tuple([1,2,3])(1,2,3)
Utilização das tuplasEstruturas que demandam valores imutáveis
Chaves de dicionáriosFunções com números variáveis de argumentosFormatação de texto
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
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’))
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”]
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
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
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
Exemplos
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
Uso do forComando for pode ser usado para iterar
sobre todas as chaves de um dicionário
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
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}
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
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
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
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