python - estruturas de dados

46
por Fábio Cerqueira

Upload: fabiocerqueira

Post on 13-Jun-2015

20.101 views

Category:

Technology


2 download

DESCRIPTION

Mostra as estruturas de dados que no Python já vem nativo da linguagem

TRANSCRIPT

Page 1: Python - Estruturas de dados

por Fábio Cerqueira

Page 2: Python - Estruturas de dados

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

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

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

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

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

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

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

Removendo elemento

Para remove um elemento da lista usa-se o comando del() ou o método remove().

Page 10: Python - Estruturas de dados

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

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

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

Operadores para lista

Page 14: Python - Estruturas de dados

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Removendo valores

Removendo por chave com o comando del:

Removendo com os métodos pop() e popitem():

Page 30: Python - Estruturas de dados

As chavesOs dicionários oferecem alguns métodos para trabalhar com chaves.

Page 31: Python - Estruturas de dados

Os valoresAssim como para chaves os dicionários também têm métodos para

trabalhar com valores.

Page 32: Python - Estruturas de dados

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

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
Page 35: Python - Estruturas de dados

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

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

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

Operações e métodos Verificação de subconjuntos

Page 39: Python - Estruturas de dados

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

Funções

Sintaxe básica:

def nome(parametros):<bloco de comandos>

Page 41: Python - Estruturas de dados

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

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

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

Parâmetros Especiais IExistem outros tipos de passagem de parâmetro. Um deles é passando

uma tupla como argumento.

Page 45: Python - Estruturas de dados

Parâmetros Especiais IIO segundo tipo de passagem de parâmetro especial é usando dicionários.

Page 46: Python - Estruturas de dados

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