Python - Estruturas de dados
-
Upload
fabiocerqueira -
Category
Technology
-
view
20.100 -
download
2
description
Transcript of Python - Estruturas de dados
![Page 1: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/1.jpg)
por Fábio Cerqueira
![Page 2: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/2.jpg)
Listas
Uma lista é uma forma de organização através da enumeração de dados para melhor visualização da informação. Uma lista tem teoricamente tamanho infinito.
• Uma list em python é diferente das tradicionais listas. São listas mais generalizadas.
• Uma list é uma sequência, assim como as strings.
• Listas em Python podem conter elementos de tipos diferentes.
• Em python a representação de lista é feita por [ ]
• Listas são sequências mutáveis.
![Page 3: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/3.jpg)
Criando uma list
As listas podem ser criadas de duas formas.
Criação de duas listas vazias.
Assim como para strings, o comando len() retorna o tamanho da list.
![Page 4: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/4.jpg)
Criando list com conteúdo
As listas podem ser criadas definindo direto o seu conteúdo.
Note que cada nome na lista sócios é um elemento. Formando uma lista de strings
![Page 5: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/5.jpg)
Listas com tipos variáveis
Os elementos da lista não precisam ser do mesmo tipo.
1. A list curso possui dois elementos, uma str e um list.
2. A list alunos possui 3 elementos, todas list
• Note que o elemento 2 da lista curso é outra list que possui 4 elementos de tipo variados entre str, float e int
• Note também no 2º elemento do 3º elemento da lista alunos
a palavra None. Ela representa vazio no Python.
![Page 6: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/6.jpg)
Acesso aos valoresOs slices usados em string também funcionam aqui.
Note o uso de atribuição múltipla.
![Page 7: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/7.jpg)
De strings para listas
Dica do uso do construtor para converter de string para lista
Cada caractere da string agora será um elemento da list. Dando assim uma dinâmica maior para a string.
![Page 8: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/8.jpg)
Listas podem ser mudadas
Os elementos das listas podem ser modificados.
Diferente das sequências fixas, como string, os elementos das lists podem ser alterados
![Page 9: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/9.jpg)
Removendo elemento
Para remove um elemento da lista usa-se o comando del() ou o método remove().
![Page 10: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/10.jpg)
Exemplo de remoção
Este exemplo remove todos o elementos ‘a’ da list.
O método count que foi usado no exemplo acima retorna quantas vezes o elemento passado como parâmetro ocorre na list.
![Page 11: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/11.jpg)
Remoção estilo pilha
Uma pilha(LIFO - Last in firt out) é uma estrutura de dados que onde o último elemento a ser adiciona é o primeiro a ser removido.
O método pop() remove e retorna o valor do último elemento da lista.
Pode ser usado com parâmetro, removendo e retornando o valor do index passado. Ex: lista.pop(3)
![Page 12: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/12.jpg)
Inserção em listas
Até agora vimos somente opções de listas que já nascem prontos e são atualizadas e reduzidas. A inserção em listas pode ser feita de várias formas.
A inserção ainda pode ser feita com uso de operadores.
![Page 13: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/13.jpg)
Operadores para lista
![Page 14: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/14.jpg)
Identidade Mesmo as listas sendo iguais elas possuem identidades diferentes.
O operador is faz a verificação se dois objetos possuem a mesma identidade.
![Page 15: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/15.jpg)
ReferênciaAs listas são passadas por referência.
Quando foi modificado o valor de b[1] também foi modificado o valor de a[1] por ambos tem o mesmo valor de referência.
![Page 16: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/16.jpg)
Comandos
Comandos com min(),max(),len() são aplicáveis a sequências, valendo
também para listas.
Pesquise sobre outros comandos que podem ser usados.
![Page 17: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/17.jpg)
Métodos para list
As listas possuem nove métodos definidos, dos quais já foram citados: append,count,extend,insert,pop,remove.
![Page 18: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/18.jpg)
Compressões de listasAs listas podem ser filtradas através de compressões.
Sintaxe:
[expDeMapeamento for elemento in listaOrigem if expDeFiltragem]
A compressão de lista é usada quando deseja filtrar dados de uma lista avaliados pela condição expDeFiltragem. Exemplos:
![Page 19: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/19.jpg)
Tuplas
• As tuplas assim como as listas são sequências, no entanto não são mutáveis
• Podem conter elementos de diferentes tipos dentro dela.
• É possível realizar slices assim como nas strings e listas. Gerando uma nova tupla.
• As tuplas são representados por ()
• As tuplas não possuem métodos.
• Não é possível adicionar, remover ou atualizar elementos de uma tupla
![Page 20: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/20.jpg)
E porque usar tuplas?
• São mais rápidas que as listas
• São usadas na formatação das strings
• Para “listas” de elementos constantes é a melhor opção
• São usadas com parâmetros de funções de parâmetros variáveis.
• É uma sequência de tipos variados que pode ser usados como chave de dicionário.
![Page 21: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/21.jpg)
Criando uma tupla
Assim como as listas, temos mais de uma opção para criação de tupla.
Criação de tupla com um elemento.
![Page 22: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/22.jpg)
Criando uma tupla
Assim como as listas, temos mais de uma opção para criação de tupla.
Criação de tupla com um elemento.
![Page 23: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/23.jpg)
Operadores com tupla
Você não pode modificar uma tupla, mas pode trocá-la por outra.
Note que ao “mudar” o conteúdo da tuple vogais, mudamos seu id também
![Page 24: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/24.jpg)
Funções retornando tuplas
Tuplas podem servir de retorno em funções. Um exemplo disso é o comando divmod() que retorna o valor do quociente e do resto em uma tupla.
![Page 25: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/25.jpg)
Dicionários
Dicionários são estruturas parecidas com o que temos de dicionário no mundo real. Exemplo:
2. Um dicionário português para inglês.
4. Uma legenda de mapa
• Os dicionários são representados em python por {}
• Os dicionários são multáveis
• Não suporta chaves repetidas
• São divididos em chave e valor
• Não existe o conceito de ordenação de um dicionário
![Page 26: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/26.jpg)
Criando dicionários
A criação de um dicionário pode ser feita de mais de uma forma.
Note o uso das {} para definir o dicionário e que os itens são separados por ‘,’ uns dos outros, mas a chave do seu valor é separada por :
![Page 27: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/27.jpg)
Acessando o valor
Exemplo de como acessar os valores de um dicionário:
Observe que o acesso agora é feito através da chave, representado no dicionário legenda por: ‘+’,’-’,’*’,’/’
Diferente de como era feito o acesso em strings, tuplas e listas.
![Page 28: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/28.jpg)
Modificando um valor
Dicionários possuem valores quem podem ser alterados através do acesso pelas suas respectivas chaves:
A modificação da ‘Soma’ para ‘Adição’ foi feita através da chave o símbolo ‘+’
![Page 29: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/29.jpg)
Removendo valores
Removendo por chave com o comando del:
Removendo com os métodos pop() e popitem():
![Page 30: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/30.jpg)
As chavesOs dicionários oferecem alguns métodos para trabalhar com chaves.
![Page 31: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/31.jpg)
Os valoresAssim como para chaves os dicionários também têm métodos para
trabalhar com valores.
![Page 32: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/32.jpg)
Adicionando mais itensPara adicionar mais elementos em um dicionário usando o método
update()
O método update recebe como parâmetro um dicionário e faz a atualização caso já exista a chave, se n existe ele faz a adição do novo item.
![Page 33: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/33.jpg)
Métodos úteisOs métodos get() e setdefault()
Outros métodos úteis podem ser o clear(),copy(),items() e iteritems() Ver próximo slide.
![Page 34: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/34.jpg)
![Page 35: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/35.jpg)
Dict e stringsO dicionários assim com as tuplas podem ser usados em strings
formatadas, só que agora de forma nomeada.
Exemplo prático para arquivos html.
![Page 36: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/36.jpg)
ConjuntosConjuntos são tipos de dados poucos usados em Python que representam
conjuntos que não possuem itens repetidos.
• Existem dois tipos:
• set() - mutável com as listas
• frozenset() – fixo com as tuplas
![Page 37: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/37.jpg)
Operações e métodos Os conjuntos possuem métodos e operações semelhas as usadas da
matemática.
Note que a ordem que é
usada a diferença interfere
no resultado.
![Page 38: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/38.jpg)
Operações e métodos Verificação de subconjuntos
![Page 39: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/39.jpg)
Mais sobre conjunto.
Para maiores informações sobre conjuntos visite a documentação do python em:
http://docs.python.org/lib/types-set.html
![Page 40: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/40.jpg)
Funções
Sintaxe básica:
def nome(parametros):<bloco de comandos>
![Page 41: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/41.jpg)
Funções
Os exemplos de funçõesao lado apresentam algumascaracterísticas distintas.menu() – é um procedimento que exibe um texto na tela
triplo(x) – retorna o valor dotriplo de um número
curso(nome = “Python”) – exibeuma frase na tela, mas com o detalhe do parâmetro de valorpadrão
![Page 42: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/42.jpg)
Funções são objetosAssim como tudo em python, as funções também são objetos.
Veja que recriamos a função divmod que retorna uma tupla (quoc,resto). E logo a seguir fizemos um alias para ela, fazendo d = divmodF
![Page 43: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/43.jpg)
A ordem não importa
A ordem como são chamados os parâmetros não importa, desde que sejam chamados de forma nomeada
Note que o resultado é igual, mesmo chamando os parâmetros em ordem trocada. É possível por causa da chamada com parâmetros nomeados.
![Page 44: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/44.jpg)
Parâmetros Especiais IExistem outros tipos de passagem de parâmetro. Um deles é passando
uma tupla como argumento.
![Page 45: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/45.jpg)
Parâmetros Especiais IIO segundo tipo de passagem de parâmetro especial é usando dicionários.
![Page 46: Python - Estruturas de dados](https://reader034.fdocument.pub/reader034/viewer/2022050808/557b7717d8b42afc0c8b4a3e/html5/thumbnails/46.jpg)
Funções dentro de funçõesVocê pode criar funções dentro de outras funções
O conceito de função dentro de funções
Reforça que cada função é um objeto.
Para mais informações e conhecer a aplicação para isso busca no google por python decorators