SlideShare ist ein Scribd-Unternehmen logo
1 von 43
Downloaden Sie, um offline zu lesen
Python:
Listas

Claudio Esperança
Estruturas de dados
 Maneira de organizar dados de maneira a facilitar seu acesso
 Algumas formas são clássicas:


Listas



Arrays (vetores e matrizes)



Tuplas (registros)



Árvores

 Linguagens freqüentemente possuem primitivas para 

construção dessas E.D. 


Estruturas de dados embutidas

 Outras E.D. mais complexas podem ser construídas 

combinando as E.D. clássicas
Estrutura de dados abstrata
 É uma especificação matemática que define uma coleção 

de dados e uma série de operações sobre ela
 É abstrata porque não especifica como as operações são 

feitas  mas somente os dados de entrada e o resultado
 Numa linguagem de programação, essa coleção de 

operações é chamada de interface ou API (Application 
Programming Interface)
 Usuários da e.d.a devem se preocupar com a interface e 

não com a implementação, que pode mudar com o tempo
 A implementação de uma e.d.a. requer cuidados quanto à 

correção e a eficiência da mesma
Listas
 São arranjos seqüenciais de informações mais simples
 Caracterizam­se por permitir o acesso eficiente aos seus 

elementos em ordem seqüencial
 A definição clássica de uma lista como estrutura de dados 

abstrata compreende:


Operação de construção de uma lista vazia



Operação que testa se uma dada lista é vazia



Operação para obter o primeiro elemento de uma lista



Uma operação para adicionar um novo elemento no início 
de uma lista



Operação para retirar o elemento inicial de uma lista
Listas em Python
 A estrutura conhecida como lista (list, em inglês) em 

Python é bastante mais geral do que e.d.a. lista 
clássica
 Na verdade, pode ser vista como uma implementação 
tanto de listas como de arrays


Além de acesso seqüencial, suportam também acesso 
direto através de índices

 Listas são variedades de seqüências assim como 

strings e portanto têm APIs semelhantes



Podem ser indexadas e fatiadas
Podem ser concatenadas (+) e repetidas
Listas em Python
 Entretanto, há diferenças importantes entre listas e 

strings


Seqüência genérica X de seqüência de caracteres



Elementos de listas podem ser alterados 
individualmente mas os de strings, não

 Listas constituem o tipo de agregação de dados mais 

versátil e comum da linguagem Python


Podem ser usadas para implementar estruturas de 
dados mais complexas como matrizes e árvores, por 
exemplo
Listas: constantes e índices
 Uma constante do tipo lista é escrita entre colchetes 

com os elementos separados por vírgula:
[] # lista vazia
[1,2] # lista com 2 elementos
 Os elementos de uma lista podem ser de qualquer 

tipo, inclusive listas. Ex.:
lista = [1, 'a', 2+3j, ['ab', 'CD']]
 Os elementos de uma lista podem ser acessados por 

índices como strings


O primeiro elemento tem índice 0



O último elemento tem índice ­1
Listas: constantes e índices
>>> lista = [1, 'a', 2+3j, ['ab', 'CD']]
>>> lista [0]
1
>>> lista [2]
(2+3j)
>>> lista [3]
['ab', 'CD']
>>> lista [-1]
['ab', 'CD']
>>> lista [0] = 2
>>> lista
[2, 'a', (2+3j), ['ab', 'CD']]
Listas: Concatenação e Repetição
 O operador + pode ser usado para concatenação e o 

operador * para repetição
>>>
>>>
[0,
>>>
>>>
[0,

lista
lista
0, 0,
lista
lista
0, 0,

= [0]*4
0]
= lista + [1]*3
0, 1, 1, 1]
Deletando elementos
 O operador del pode ser usado para remover 

elementos de uma lista
 Ex.:

>>>
[1,
>>>
>>>
[1,
>>>
>>>
[1,

lista
2, 3, ['ab', 'CD']]
del lista [2]
lista
2, ['ab', 'CD']]
del lista [2][1]
lista
2, ['ab']]
Listas: fatias (slices)
 A notação de fatias também pode ser usada, inclusive 

para atribuição:
>>> lista = [1, 'a', 2+3j, ['ab', 'CD']]
>>> lista [1:]
['a', (2+3j), ['ab', 'CD']]
>>> lista [:1]
[1]
>>> lista [1:2]
['a']
>>> lista [0:-1]
[1, 'a', (2+3j)]
Listas: atribuição a fatias
 A atribuição a uma fatia requer que o valor atribuído seja uma seqüência 

(uma lista ou uma string, por exemplo)
 A atribuição substitui os elementos da fatia pelos da seqüência
>>> lista = [1, 'y', ['ab', 'CD']]
>>> lista [1:1] = ['z']
>>> lista
[1, 'z', 'y', ['ab', 'CD']]
>>> lista [1:3] = [['x']]
>>> lista
[1, ['x'], ['ab', 'CD']]
>>> lista [1:-1]= [2,3,4]
>>> lista
[1, 2, 3, 4, ['ab', 'CD']]
>>> lista [:2] = 'xyz'
>>> lista
['x', 'y', 'z', 3, 4, ['ab', 'CD']]
Incrementos em Fatias
 É possível usar um terceiro número na notação de 

fatias designando o incremento


Default é 1 , ou seja, toma os elementos de um em um 
do menor para o maior índice



Pode­se usar qualquer número inteiro diferente de 0


a[0:10:2] retorna uma lista com os 10 primeiros elementos 
de a tomados de 2 em 2 (5 elementos, no máximo)



a[5:0:-1] retorna uma lista com os 5 primeiros elementos 
de a tomados da esquerda para a direita

 Obs.: Esta notação só existe nas versões de Python a 

partir da 2.3
Incrementos em Fatias
 Exemplo

>>> a
>>> a
['a',
>>> a
['x',

= ['a', 2, 3, 'd', 'x']
[:3:2]
3]
[::-1]
'd', 3, 2, 'a']
Incrementos em Fatias
 Se um incremento de fatia é diferente de 1, uma 

atribuição à fatia deve ter o mesmo número de 
elementos:
>>> l
>>> l
>>> l
['x',
>>> l

= [1,2,3,4,5]
[0::2] = ['x','y','z']
2, 'y', 4, 'z']
[0::2] = [6,7]

Traceback (most recent
File "<pyshell#17>",
l [0::2] = [6,7]
ValueError: attempt to
to extended slice of

call last):
line 1, in -toplevelassign sequence of size 2
size 3
Operador “in”
 Permite saber se um elemento pertence a uma lista
 Serve também para strings
 Ex.:
>>> lista = [1, 'a', 'bc']
>>> 1 in lista
True
>>> 2 in lista
False
>>> 'b' in lista
False
>>> 'b' in lista[2]
True
>>> 'bc' in 'abcd'
True
Inicializando listas
 Não é possível atribuir a uma posição inexistente de 

uma lista
>>> vetor = []
>>> vetor [0] = 1
Traceback (most recent call last):
File "<pyshell#21>", line 1, in -toplevelvetor [0] = 1
IndexError: list assignment index out of range

 Se uma lista vai ser usada como um array, isto é, vai 

conter um número predeterminado de elementos, é 
conveniente iniciá­la
>>>
>>>
>>>
[3,

vetor = [0]*10
vetor [0] = 3
vetor
0, 0, 0, 0, 0, 0, 0, 0, 0]
Usando None
 No uso de estruturas de dados, às vezes é importante 

preencher uma posição com um valor “não válido”
 A melhor opção para esse uso é empregar o valor 

especial None


Não faz parte de tipo nenhum



É melhor que usar 0, []  ou uma string vazia

 Útil para criar uma lista “vazia” mas com um número 

conhecido de posições. Ex.:
>>> lista = [None]*5
>>> lista
[None, None, None, None, None]
Len, min e max
 len (lista) retorna o número de elementos de lista
 min (lista) e max (lista) retornam o menor/maior 

elemento de lista
 Ex.:
>>>
>>>
1
>>>
5
>>>
9
>>>
'c'

lista = [1, 2, 9, 3, 4]
min (lista)
len (lista)
max (lista)
max (['a', 'b', 'c'])
min e max
 Na verdade, min e max podem ser usados também com 

vários argumentos ao invés de uma lista
 Ex.:
>>> min (1,2,3,4)
1
>>> max (3,4,5)
5
>>> max ([],[1],['a'])
['a']
A função list
 Pode ser usada para converter uma string numa lista
 É útil pois uma lista pode ser modificada, mas uma string, não
 Para fazer a transformação inversa, pode­se usar o método join

(veremos métodos mais tarde)
 Ex.:









>>> lista = list('alo')
>>> lista
['a', 'l', 'o']
>>> lista[1]='xx'
>>> lista
['a', 'xx', 'o']
>>> ''.join(lista)
'axxo'
A função range
 Retorna uma progressão aritmética de inteiros numa lista
 Forma geral: range (início, parada, incremento)
 início (opcional) é o primeiro valor a ser gerado (default: 0)
 parada é o limite da progressão: a progressão termina no 
último valor antes de parada
 incremento (opcional) é o passo da progressão (default:1)
 Ex.:
>>>
[0,
>>>
[2,
>>>
[5,

range(3)
1, 2]
range(2,5,2)
4]
range(5,2,-2)
3]
Comando for
 Permite iterar sobre os elementos de uma lista
 Forma geral: for var  in  lista : comandos


Os comandos são repetidos para cada valor de lista



Durante a repetição, var possui o valor corrente da lista

 Uma grande utilidade da função range é construir a 

lista de iteração
 Ex.:
>>>for i in range(1,7): print i,
1 2 3 4 5 6
Comparando listas
 Listas são comparadas lexicograficamente
 Se duas listas são iguais até os k­ésimos elementos, o 
resultado da comparação depende da comparação 
entre os (k+1)­ésimos elementos




Se alguma das listas tem somente k elementos, então esta é a 
menor 

Duas listas são iguais se e somente se têm o mesmo 
comprimento e todos os elementos de mesma posição 
são iguais

 Uma lista é maior que um número mas menor que 

uma string


Não me pergunte por quê!
Comparando listas
>>> [1,2] < [2, 3]
True
>>> [1,2] < [1, 2, 3]
True
>>> [1,2] != [1,2]
False
>>> min([[1],[2,3],[3,4],[]])
[]
>>> max([[1],[2,3],[3,4],[]])
[3, 4]
>>> min(0,[],"")
0
>>> max(0,[],"")
''
Variáveis do tipo list
 Uma variável do tipo lista na verdade contém uma 

referência para um valor do tipo lista


Atribuir uma variável a outra, cria uma nova referência 
mas não uma nova lista



Para se criar um novo valor, pode­se usar uma 
expressão que retorne o valor desejado



Para saber se duas variáveis se referem ao mesmo 
valor pode­se usar o operador is
Variáveis do tipo list
>>> a = b = [1,2,3]
>>> c = a
>>> d = c[:]
>>> a is b
True
>>> c is b
True
>>> d is c
False
>>> a [1]=5
>>> b
[1, 5, 3]
>>> d
[1, 2, 3]
A Classe list
 Uma lista é na verdade um objeto de uma classe chamada 

list


Não vimos ainda programação OO, mas alguns pontos 
devem ser enfatizados

 Listas possuem métodos que podem ser aplicados a elas
 Um método é semelhante a uma função, mas são 
invocados de forma diferente: objeto.método(args)
 Ex.: lista.reverse() inverte a ordem dos elementos 
da lista
 Para saber todos os métodos de listas, escreva 
help(list)
Alguns métodos da classe list
 append(elemento)


Acrescenta o elemento no fim da lista



Observe que a operação altera a lista, e não 
simplesmente retorna uma lista modificada



Ex.:
>>>
>>>
>>>
[1,
>>>
>>>
[1,

lista = [1,2]
lista.append(3)
lista
2, 3]
lista.append([4,5])
lista
2, 3, [4, 5]]
Alguns métodos da classe list
 count(elemento)
 Retorna quantas vezes o elemento aparece na lista
 Ex.:
>>> [1,2,3,1,2,3,4].count(1)
2

 extend(lista2)
 Acrescenta os elementos de lista2 ao final da lista
 OBS.: Altera a lista ao invés de retornar a lista alterada
 Ex.:
>>>
>>>
>>>
[1,

lista=[1,2]
lista.extend([3,4])
lista
2, 3, 4]
Alguns métodos da classe list
 count(elemento)
 Retorna quantas vezes o elemento aparece na lista
 Ex.:
>>> [1,2,3,1,2,3,4].count(1)
2

 extend(lista2)
 Acrescenta os elementos de lista2 ao final da lista
 OBS.: Altera a lista ao invés de retornar a lista alterada
 Ex.:
>>>
>>>
>>>
[1,

lista=[1,2]
lista.extend([3,4])
lista
2, 3, 4]
Alguns métodos da classe list
 index(elemento)
 Retorna o índice da primeira ocorrência de elemento na 
lista
 Um erro ocorre se elemento não consta da lista
 Ex.:
>>> lista = [9,8,33,12]
>>> lista.index(33)
2
>>> lista.index(7)
Traceback (most recent call last):
File "<pyshell#3>", line 1, in -toplevellista.index(7)
ValueError: list.index(x): x not in list
Alguns métodos da classe list
 insert(indice, elemento)
 insere elemento na lista na posição indicada por índice
 Ex.:
>>>
>>>
>>>
[0,


Como o extend, altera a lista  ao invés de retornar a lista




lista = [0,1,2,3]
lista.insert(1,'dois')
lista
'dois', 1, 2, 3]

O valor retornado é None!

Atribuições a fatias servem para a mesma finalidade 
mas são menos legíveis
>>>
>>>
>>>
[0,

lista = [0,1,2,3]
lista [1:1] = ['dois']
lista
'dois', 1, 2, 3]
Alguns métodos da classe list
 pop(índice)
 Remove da lista o elemento na posição índice e o retorna
 Se índice não for mencionado, é assumido o último
 Ex.:
>>>
>>>
4
>>>
[1,
>>>
2
>>>
[1,

lista = [1,2,3,4]
lista.pop()
lista
2, 3]
lista.pop(1)
lista
3]
Alguns métodos da classe list
 remove(elemento)
 Remove da lista o primeiro elemento igual a elemento
 Se não existe tal elemento, um erro é gerado
 Ex.:
>>> lista = ['oi', 'alo', 'ola']
>>> lista.remove('alo')
>>> lista
['oi', 'ola']
>>> lista.remove('oba')
Traceback (most recent call last):
File "<pyshell#24>", line 1, in -toplevellista.remove('oba')
ValueError: list.remove(x): x not in list
Alguns métodos da classe list
 reverse()
 Inverte a ordem dos elementos da lista
 Ex.:
>>>
>>>
>>>
[3,

lista=[1,2,3]
lista.reverse()
lista
2, 1]
Alguns métodos da classe list
 sort(cmp=None, key=None, reverse=False)
 Ordena a lista
 Os argumentos são opcionais. Por default, a lista é 
ordenada crescentemente
 Ex.:
>>>
>>>
>>>
[1,

lista = [9,8,7,1,4,2]
lista.sort()
lista
2, 4, 7, 8, 9]
Alguns métodos da classe list
 sort(cmp=None, key=None, reverse=False)
 É possível obter a ordem inversa, passando True para o 
argumento reverse
 Ex.:
>>>
>>>
>>>
[9,


lista = [9,8,7,1,4,2]
lista.sort(reverse=True)
lista
8, 7, 4, 2, 1]

OBS.: A notação acima permite passar um argumento sem 
especificar os anteriores, mas poderíamos ter escrito:
>>>
>>>
>>>
[9,

lista = [9,8,7,1,4,2]
lista.sort(None,None,True)
lista
8, 7, 4, 2, 1]
Alguns métodos da classe list
 sort(cmp=None, key=None, reverse=False)
 O argumento cmp especifica uma função de comparação






É uma função que o sort chama para definir se um elemento é 
anterior ou posterior a outro
A função a ser passada tem a forma comp(elem1,elem2) e deve 
retornar um inteiro negativo caso elem1 seja anterior a elem2, 
positivo caso elem2 seja anterior a elem1 e zero se tanto faz

Ex.:
>>> def compara(elem1,elem2):
return elem1%10 - elem2%10
>>> compara(100,22)
-2
>>> lista=[100,22,303,104]
>>> lista.sort(compara)
>>> lista
[100, 22, 303, 104]
Alguns métodos da classe list
 sort(cmp=None, key=None, reverse=False)
 O argumento key especifica uma função aplicada a cada 
elemento




Se for passada uma função f, em vez de ordenar os elementos 
baseado em seus valores v, ordena baseado em f(v)

Ex.:
>>> lista = ['abc','de','fghi']
>>> lista.sort(key=len)
>>> lista
['de', 'abc', 'fghi']
Matrizes
 Listas podem ser usadas para guardar matrizes
 Por exemplo, podemos criar uma matriz­identidade de 

3x3 com o código:
m = []
for i in range(3):
m.append([0]*3)
m[i][i]=1

 Obs.: Não é boa idéia iniciar uma matriz assim:
m = [[0]*3]*3
for i in range(3): m[i][i]=1
print m
 Resultado:[[1, 1, 1], [1, 1, 1], [1, 1, 1]]


(Por quê?)
Exercícios
 Escreva um programa que intercale os elementos de 

duas listas l1 e l2


Exemplo: para l1 = [1,2,3] e l2 =
['a','b','c','d','e'], o programa deve 
computar a lista [1,'a',2,'b',3,'c','d','e']

 Escreva um programa para computar o produto de 

duas matrizes m1 e m2
Exercícios
 Escreva um programa para computar o triângulo de 

Pascal até a linha n, onde n é um valor inteiro 
positivo lido da linha de comando





Lembre­se que o elemento na i­ésima linha e j­ésima 
coluna do triângulo de Pascal contém o número de 
combinações de i elementos j a j
O triângulo deve ser posto numa lista onde o i­ésimo 
elemento é uma lista com a i­ésima linha do triângulo
Ex:

Quantas linhas? 7
[[1], [1, 1], [1, 2, 1], [1, 3, 3, 1], [1, 4,
6, 4, 1], [1, 5, 10, 10, 5, 1], [1, 6, 15,
20, 15, 6, 1]]

Weitere ähnliche Inhalte

Was ist angesagt?

Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADLeinylson Fontinele
 
Algoritmo e Estrutura de dados em C - Aula 01 - 2019
Algoritmo e Estrutura de dados em C - Aula 01 - 2019Algoritmo e Estrutura de dados em C - Aula 01 - 2019
Algoritmo e Estrutura de dados em C - Aula 01 - 2019Eduardo S. Pereira
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADLeinylson Fontinele
 
Estrutura de Dados Apoio (Complexidade de Algoritmos)
Estrutura de Dados Apoio (Complexidade de Algoritmos)Estrutura de Dados Apoio (Complexidade de Algoritmos)
Estrutura de Dados Apoio (Complexidade de Algoritmos)Leinylson Fontinele
 
Indices B-Tree – considerações básicas
Indices B-Tree – considerações básicasIndices B-Tree – considerações básicas
Indices B-Tree – considerações básicasLuis Marques
 
Estrutura de Dados Aula 07 - Alocação dinâmica de memória
Estrutura de Dados Aula 07 - Alocação dinâmica de memóriaEstrutura de Dados Aula 07 - Alocação dinâmica de memória
Estrutura de Dados Aula 07 - Alocação dinâmica de memóriaLeinylson Fontinele
 
01 Orientacao A Objetos Programacao
01   Orientacao A Objetos   Programacao01   Orientacao A Objetos   Programacao
01 Orientacao A Objetos Programacaotaniamaciel
 
Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisFabrício Lopes Sanchez
 
Estrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e FunçõesEstrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e FunçõesLeinylson Fontinele
 
Excel Funções de Data e Hora
Excel Funções de Data e HoraExcel Funções de Data e Hora
Excel Funções de Data e HoraPaula Peres
 
Tutorial formulas excell
Tutorial formulas excellTutorial formulas excell
Tutorial formulas excellgusmao2010
 
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...Leinylson Fontinele
 
Curso de Básico de Excel 2013 - Parte II
Curso de Básico de Excel  2013 - Parte IICurso de Básico de Excel  2013 - Parte II
Curso de Básico de Excel 2013 - Parte IIABCursos OnLine
 

Was ist angesagt? (20)

Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
 
Algoritmo e Estrutura de dados em C - Aula 01 - 2019
Algoritmo e Estrutura de dados em C - Aula 01 - 2019Algoritmo e Estrutura de dados em C - Aula 01 - 2019
Algoritmo e Estrutura de dados em C - Aula 01 - 2019
 
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TADEstrutura de Dados - Aula 02 - Estrutura de Dados e TAD
Estrutura de Dados - Aula 02 - Estrutura de Dados e TAD
 
Estrutura de Dados Apoio (Complexidade de Algoritmos)
Estrutura de Dados Apoio (Complexidade de Algoritmos)Estrutura de Dados Apoio (Complexidade de Algoritmos)
Estrutura de Dados Apoio (Complexidade de Algoritmos)
 
Indices B-Tree – considerações básicas
Indices B-Tree – considerações básicasIndices B-Tree – considerações básicas
Indices B-Tree – considerações básicas
 
Estrutura de Dados Aula 07 - Alocação dinâmica de memória
Estrutura de Dados Aula 07 - Alocação dinâmica de memóriaEstrutura de Dados Aula 07 - Alocação dinâmica de memória
Estrutura de Dados Aula 07 - Alocação dinâmica de memória
 
01 Orientacao A Objetos Programacao
01   Orientacao A Objetos   Programacao01   Orientacao A Objetos   Programacao
01 Orientacao A Objetos Programacao
 
R para Iniciantes
R para IniciantesR para Iniciantes
R para Iniciantes
 
Excel
ExcelExcel
Excel
 
Estrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentaisEstrutura de Dados - Conceitos fundamentais
Estrutura de Dados - Conceitos fundamentais
 
35
3535
35
 
Estrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e FunçõesEstrutura de Dados - Aula 03 - Ponteiros e Funções
Estrutura de Dados - Aula 03 - Ponteiros e Funções
 
Excel Funções de Data e Hora
Excel Funções de Data e HoraExcel Funções de Data e Hora
Excel Funções de Data e Hora
 
Tutorial formulas excell
Tutorial formulas excellTutorial formulas excell
Tutorial formulas excell
 
Aula Geral Excel
Aula Geral   ExcelAula Geral   Excel
Aula Geral Excel
 
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
Estrutura de dados - Aula de Revisão (Linguagem C/C++, Função, Vetor, Matriz,...
 
Curso de Básico de Excel 2013 - Parte II
Curso de Básico de Excel  2013 - Parte IICurso de Básico de Excel  2013 - Parte II
Curso de Básico de Excel 2013 - Parte II
 
Slides collections
Slides collectionsSlides collections
Slides collections
 
Introdução ao SQL
Introdução ao SQLIntrodução ao SQL
Introdução ao SQL
 
Apostila php 01
Apostila php 01Apostila php 01
Apostila php 01
 

Andere mochten auch

Análise estática de código Python
Análise estática de código PythonAnálise estática de código Python
Análise estática de código PythonGuilherme Vierno
 
17 arvores binarias de busca
17   arvores binarias de busca17   arvores binarias de busca
17 arvores binarias de buscaRicardo Bolanho
 
Operações em Árvores Binárias
Operações em Árvores BináriasOperações em Árvores Binárias
Operações em Árvores Bináriaselliando dias
 
Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do GoogleLuciano Ramalho
 
Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Marcelo Barros de Almeida
 
Logica Algoritmo 08 Recursividade
Logica Algoritmo 08 RecursividadeLogica Algoritmo 08 Recursividade
Logica Algoritmo 08 RecursividadeRegis Magalhães
 
import pybr12: experiencias de inclusión en la última PyCon Brazil
import pybr12: experiencias de inclusión en la última PyCon Brazilimport pybr12: experiencias de inclusión en la última PyCon Brazil
import pybr12: experiencias de inclusión en la última PyCon BrazilFATEC São José dos Campos
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em PythonLuciano Ramalho
 
What Makes Great Infographics
What Makes Great InfographicsWhat Makes Great Infographics
What Makes Great InfographicsSlideShare
 
Masters of SlideShare
Masters of SlideShareMasters of SlideShare
Masters of SlideShareKapost
 
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to SlideshareSTOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to SlideshareEmpowered Presentations
 

Andere mochten auch (20)

Análise estática de código Python
Análise estática de código PythonAnálise estática de código Python
Análise estática de código Python
 
17 arvores binarias de busca
17   arvores binarias de busca17   arvores binarias de busca
17 arvores binarias de busca
 
TWP45 Hackeando o Facebook com Python
TWP45 Hackeando o Facebook com PythonTWP45 Hackeando o Facebook com Python
TWP45 Hackeando o Facebook com Python
 
Operações em Árvores Binárias
Operações em Árvores BináriasOperações em Árvores Binárias
Operações em Árvores Binárias
 
TWP20 For Funções e Random
TWP20 For Funções e RandomTWP20 For Funções e Random
TWP20 For Funções e Random
 
TWP05 Variáveis e Entrada de Dados
TWP05 Variáveis e Entrada de DadosTWP05 Variáveis e Entrada de Dados
TWP05 Variáveis e Entrada de Dados
 
Para gostar de Python DevDay
Para gostar de Python DevDay Para gostar de Python DevDay
Para gostar de Python DevDay
 
Lista de exercícios IV python para zumbis
Lista de exercícios IV python para zumbisLista de exercícios IV python para zumbis
Lista de exercícios IV python para zumbis
 
Python, a arma secreta do Google
Python, a arma secreta do GooglePython, a arma secreta do Google
Python, a arma secreta do Google
 
Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)Python para desenvolvedores - material apoio (parte I)
Python para desenvolvedores - material apoio (parte I)
 
Recursividade
RecursividadeRecursividade
Recursividade
 
Logica Algoritmo 08 Recursividade
Logica Algoritmo 08 RecursividadeLogica Algoritmo 08 Recursividade
Logica Algoritmo 08 Recursividade
 
import pybr12: experiencias de inclusión en la última PyCon Brazil
import pybr12: experiencias de inclusión en la última PyCon Brazilimport pybr12: experiencias de inclusión en la última PyCon Brazil
import pybr12: experiencias de inclusión en la última PyCon Brazil
 
Estrutura de dados - Árvores Binárias
Estrutura de dados - Árvores BináriasEstrutura de dados - Árvores Binárias
Estrutura de dados - Árvores Binárias
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em Python
 
Aprendendo python
Aprendendo pythonAprendendo python
Aprendendo python
 
What Makes Great Infographics
What Makes Great InfographicsWhat Makes Great Infographics
What Makes Great Infographics
 
Masters of SlideShare
Masters of SlideShareMasters of SlideShare
Masters of SlideShare
 
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to SlideshareSTOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
 
You Suck At PowerPoint!
You Suck At PowerPoint!You Suck At PowerPoint!
You Suck At PowerPoint!
 

Ähnlich wie Python Listas (20)

Estrutura de Dados
Estrutura de DadosEstrutura de Dados
Estrutura de Dados
 
Lista encadeada de inteiros
Lista encadeada de inteirosLista encadeada de inteiros
Lista encadeada de inteiros
 
Android - Dicas de Performance
Android - Dicas de PerformanceAndroid - Dicas de Performance
Android - Dicas de Performance
 
Java: Composicao e Array List
Java: Composicao e Array ListJava: Composicao e Array List
Java: Composicao e Array List
 
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
 
Top0
Top0Top0
Top0
 
Top0
Top0Top0
Top0
 
Java 12 Colecoes
Java 12 ColecoesJava 12 Colecoes
Java 12 Colecoes
 
Python aula 2
Python aula 2Python aula 2
Python aula 2
 
Asp.net.data
Asp.net.dataAsp.net.data
Asp.net.data
 
PHP Arrays - Básico | Certificação
PHP Arrays - Básico | CertificaçãoPHP Arrays - Básico | Certificação
PHP Arrays - Básico | Certificação
 
Banco de dados oracle
Banco de dados oracleBanco de dados oracle
Banco de dados oracle
 
Silo.tips utilizando os-componentes-da-paleta-dbexpress-para-acesso-ao-banco-...
Silo.tips utilizando os-componentes-da-paleta-dbexpress-para-acesso-ao-banco-...Silo.tips utilizando os-componentes-da-paleta-dbexpress-para-acesso-ao-banco-...
Silo.tips utilizando os-componentes-da-paleta-dbexpress-para-acesso-ao-banco-...
 
Banco de Dados.pptx
Banco de Dados.pptxBanco de Dados.pptx
Banco de Dados.pptx
 
Pesquisa ppi 2
Pesquisa ppi 2Pesquisa ppi 2
Pesquisa ppi 2
 
Apostila de Alocação Dinâmica em C
Apostila de Alocação Dinâmica em CApostila de Alocação Dinâmica em C
Apostila de Alocação Dinâmica em C
 
Fundamentos de SQL - Parte 3 de 8
Fundamentos de SQL - Parte 3 de 8Fundamentos de SQL - Parte 3 de 8
Fundamentos de SQL - Parte 3 de 8
 
Sql
SqlSql
Sql
 
Ed1
Ed1Ed1
Ed1
 
Banco dados lj
Banco dados ljBanco dados lj
Banco dados lj
 

Mehr von Victor Marcelino

08 programando em python - recursao
 08   programando em python - recursao 08   programando em python - recursao
08 programando em python - recursaoVictor Marcelino
 
09 programando em python - classes
 09   programando em python - classes 09   programando em python - classes
09 programando em python - classesVictor Marcelino
 
01 programando em python - sistemas de numeracao
 01   programando em python - sistemas de numeracao 01   programando em python - sistemas de numeracao
01 programando em python - sistemas de numeracaoVictor Marcelino
 
00 programando em python - introducao
 00   programando em python - introducao 00   programando em python - introducao
00 programando em python - introducaoVictor Marcelino
 
07 programando em python - funcoes
 07   programando em python - funcoes 07   programando em python - funcoes
07 programando em python - funcoesVictor Marcelino
 
12 programando em python - modulos
 12   programando em python - modulos 12   programando em python - modulos
12 programando em python - modulosVictor Marcelino
 
03 programando em python - comandos basicos
 03   programando em python - comandos basicos 03   programando em python - comandos basicos
03 programando em python - comandos basicosVictor Marcelino
 
14 programando em python - interfaces graficas com tk
 14   programando em python - interfaces graficas com tk 14   programando em python - interfaces graficas com tk
14 programando em python - interfaces graficas com tkVictor Marcelino
 
13 programando em python - arquivos
 13   programando em python - arquivos 13   programando em python - arquivos
13 programando em python - arquivosVictor Marcelino
 
11 programando em python - conjuntos
 11   programando em python - conjuntos 11   programando em python - conjuntos
11 programando em python - conjuntosVictor Marcelino
 
10 programando em python - excecoes
 10   programando em python - excecoes 10   programando em python - excecoes
10 programando em python - excecoesVictor Marcelino
 
06 programando em python - dicionarios
 06   programando em python - dicionarios 06   programando em python - dicionarios
06 programando em python - dicionariosVictor Marcelino
 
05 programando em python - tuplas e strings
 05   programando em python - tuplas e strings 05   programando em python - tuplas e strings
05 programando em python - tuplas e stringsVictor Marcelino
 
02 programando em python - tipos basicos
 02   programando em python - tipos basicos 02   programando em python - tipos basicos
02 programando em python - tipos basicosVictor Marcelino
 
Python for-unix-and-linux-system-administration
Python for-unix-and-linux-system-administrationPython for-unix-and-linux-system-administration
Python for-unix-and-linux-system-administrationVictor Marcelino
 

Mehr von Victor Marcelino (15)

08 programando em python - recursao
 08   programando em python - recursao 08   programando em python - recursao
08 programando em python - recursao
 
09 programando em python - classes
 09   programando em python - classes 09   programando em python - classes
09 programando em python - classes
 
01 programando em python - sistemas de numeracao
 01   programando em python - sistemas de numeracao 01   programando em python - sistemas de numeracao
01 programando em python - sistemas de numeracao
 
00 programando em python - introducao
 00   programando em python - introducao 00   programando em python - introducao
00 programando em python - introducao
 
07 programando em python - funcoes
 07   programando em python - funcoes 07   programando em python - funcoes
07 programando em python - funcoes
 
12 programando em python - modulos
 12   programando em python - modulos 12   programando em python - modulos
12 programando em python - modulos
 
03 programando em python - comandos basicos
 03   programando em python - comandos basicos 03   programando em python - comandos basicos
03 programando em python - comandos basicos
 
14 programando em python - interfaces graficas com tk
 14   programando em python - interfaces graficas com tk 14   programando em python - interfaces graficas com tk
14 programando em python - interfaces graficas com tk
 
13 programando em python - arquivos
 13   programando em python - arquivos 13   programando em python - arquivos
13 programando em python - arquivos
 
11 programando em python - conjuntos
 11   programando em python - conjuntos 11   programando em python - conjuntos
11 programando em python - conjuntos
 
10 programando em python - excecoes
 10   programando em python - excecoes 10   programando em python - excecoes
10 programando em python - excecoes
 
06 programando em python - dicionarios
 06   programando em python - dicionarios 06   programando em python - dicionarios
06 programando em python - dicionarios
 
05 programando em python - tuplas e strings
 05   programando em python - tuplas e strings 05   programando em python - tuplas e strings
05 programando em python - tuplas e strings
 
02 programando em python - tipos basicos
 02   programando em python - tipos basicos 02   programando em python - tipos basicos
02 programando em python - tipos basicos
 
Python for-unix-and-linux-system-administration
Python for-unix-and-linux-system-administrationPython for-unix-and-linux-system-administration
Python for-unix-and-linux-system-administration
 

Kürzlich hochgeladen

Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxLuizHenriquedeAlmeid6
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfHELENO FAVACHO
 
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdfGEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdfRavenaSales1
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdfLeloIurk1
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxLusGlissonGud
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãIlda Bicacro
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfLeloIurk1
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéisines09cachapa
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...azulassessoria9
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfcomercial400681
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTailsonSantos1
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfTutor de matemática Ícaro
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...IsabelPereira2010
 
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptxSlide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptxedelon1
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMHELENO FAVACHO
 

Kürzlich hochgeladen (20)

Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
 
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdfGEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptx
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
Construção (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! SertãConstrução (C)erta - Nós Propomos! Sertã
Construção (C)erta - Nós Propomos! Sertã
 
Aula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIXAula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIX
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
DeClara n.º 75 Abril 2024 - O Jornal digital do Agrupamento de Escolas Clara ...
 
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptxSlide - EBD ADEB 2024 Licao 02 2Trim.pptx
Slide - EBD ADEB 2024 Licao 02 2Trim.pptx
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 

Python Listas

  • 2. Estruturas de dados  Maneira de organizar dados de maneira a facilitar seu acesso  Algumas formas são clássicas:  Listas  Arrays (vetores e matrizes)  Tuplas (registros)  Árvores  Linguagens freqüentemente possuem primitivas para  construção dessas E.D.   Estruturas de dados embutidas  Outras E.D. mais complexas podem ser construídas  combinando as E.D. clássicas
  • 3. Estrutura de dados abstrata  É uma especificação matemática que define uma coleção  de dados e uma série de operações sobre ela  É abstrata porque não especifica como as operações são  feitas  mas somente os dados de entrada e o resultado  Numa linguagem de programação, essa coleção de  operações é chamada de interface ou API (Application  Programming Interface)  Usuários da e.d.a devem se preocupar com a interface e  não com a implementação, que pode mudar com o tempo  A implementação de uma e.d.a. requer cuidados quanto à  correção e a eficiência da mesma
  • 4. Listas  São arranjos seqüenciais de informações mais simples  Caracterizam­se por permitir o acesso eficiente aos seus  elementos em ordem seqüencial  A definição clássica de uma lista como estrutura de dados  abstrata compreende:  Operação de construção de uma lista vazia  Operação que testa se uma dada lista é vazia  Operação para obter o primeiro elemento de uma lista  Uma operação para adicionar um novo elemento no início  de uma lista  Operação para retirar o elemento inicial de uma lista
  • 5. Listas em Python  A estrutura conhecida como lista (list, em inglês) em  Python é bastante mais geral do que e.d.a. lista  clássica  Na verdade, pode ser vista como uma implementação  tanto de listas como de arrays  Além de acesso seqüencial, suportam também acesso  direto através de índices  Listas são variedades de seqüências assim como  strings e portanto têm APIs semelhantes   Podem ser indexadas e fatiadas Podem ser concatenadas (+) e repetidas
  • 6. Listas em Python  Entretanto, há diferenças importantes entre listas e  strings  Seqüência genérica X de seqüência de caracteres  Elementos de listas podem ser alterados  individualmente mas os de strings, não  Listas constituem o tipo de agregação de dados mais  versátil e comum da linguagem Python  Podem ser usadas para implementar estruturas de  dados mais complexas como matrizes e árvores, por  exemplo
  • 7. Listas: constantes e índices  Uma constante do tipo lista é escrita entre colchetes  com os elementos separados por vírgula: [] # lista vazia [1,2] # lista com 2 elementos  Os elementos de uma lista podem ser de qualquer  tipo, inclusive listas. Ex.: lista = [1, 'a', 2+3j, ['ab', 'CD']]  Os elementos de uma lista podem ser acessados por  índices como strings  O primeiro elemento tem índice 0  O último elemento tem índice ­1
  • 8. Listas: constantes e índices >>> lista = [1, 'a', 2+3j, ['ab', 'CD']] >>> lista [0] 1 >>> lista [2] (2+3j) >>> lista [3] ['ab', 'CD'] >>> lista [-1] ['ab', 'CD'] >>> lista [0] = 2 >>> lista [2, 'a', (2+3j), ['ab', 'CD']]
  • 9. Listas: Concatenação e Repetição  O operador + pode ser usado para concatenação e o  operador * para repetição >>> >>> [0, >>> >>> [0, lista lista 0, 0, lista lista 0, 0, = [0]*4 0] = lista + [1]*3 0, 1, 1, 1]
  • 10. Deletando elementos  O operador del pode ser usado para remover  elementos de uma lista  Ex.: >>> [1, >>> >>> [1, >>> >>> [1, lista 2, 3, ['ab', 'CD']] del lista [2] lista 2, ['ab', 'CD']] del lista [2][1] lista 2, ['ab']]
  • 11. Listas: fatias (slices)  A notação de fatias também pode ser usada, inclusive  para atribuição: >>> lista = [1, 'a', 2+3j, ['ab', 'CD']] >>> lista [1:] ['a', (2+3j), ['ab', 'CD']] >>> lista [:1] [1] >>> lista [1:2] ['a'] >>> lista [0:-1] [1, 'a', (2+3j)]
  • 12. Listas: atribuição a fatias  A atribuição a uma fatia requer que o valor atribuído seja uma seqüência  (uma lista ou uma string, por exemplo)  A atribuição substitui os elementos da fatia pelos da seqüência >>> lista = [1, 'y', ['ab', 'CD']] >>> lista [1:1] = ['z'] >>> lista [1, 'z', 'y', ['ab', 'CD']] >>> lista [1:3] = [['x']] >>> lista [1, ['x'], ['ab', 'CD']] >>> lista [1:-1]= [2,3,4] >>> lista [1, 2, 3, 4, ['ab', 'CD']] >>> lista [:2] = 'xyz' >>> lista ['x', 'y', 'z', 3, 4, ['ab', 'CD']]
  • 13. Incrementos em Fatias  É possível usar um terceiro número na notação de  fatias designando o incremento  Default é 1 , ou seja, toma os elementos de um em um  do menor para o maior índice  Pode­se usar qualquer número inteiro diferente de 0  a[0:10:2] retorna uma lista com os 10 primeiros elementos  de a tomados de 2 em 2 (5 elementos, no máximo)  a[5:0:-1] retorna uma lista com os 5 primeiros elementos  de a tomados da esquerda para a direita  Obs.: Esta notação só existe nas versões de Python a  partir da 2.3
  • 14. Incrementos em Fatias  Exemplo >>> a >>> a ['a', >>> a ['x', = ['a', 2, 3, 'd', 'x'] [:3:2] 3] [::-1] 'd', 3, 2, 'a']
  • 15. Incrementos em Fatias  Se um incremento de fatia é diferente de 1, uma  atribuição à fatia deve ter o mesmo número de  elementos: >>> l >>> l >>> l ['x', >>> l = [1,2,3,4,5] [0::2] = ['x','y','z'] 2, 'y', 4, 'z'] [0::2] = [6,7] Traceback (most recent File "<pyshell#17>", l [0::2] = [6,7] ValueError: attempt to to extended slice of call last): line 1, in -toplevelassign sequence of size 2 size 3
  • 16. Operador “in”  Permite saber se um elemento pertence a uma lista  Serve também para strings  Ex.: >>> lista = [1, 'a', 'bc'] >>> 1 in lista True >>> 2 in lista False >>> 'b' in lista False >>> 'b' in lista[2] True >>> 'bc' in 'abcd' True
  • 17. Inicializando listas  Não é possível atribuir a uma posição inexistente de  uma lista >>> vetor = [] >>> vetor [0] = 1 Traceback (most recent call last): File "<pyshell#21>", line 1, in -toplevelvetor [0] = 1 IndexError: list assignment index out of range  Se uma lista vai ser usada como um array, isto é, vai  conter um número predeterminado de elementos, é  conveniente iniciá­la >>> >>> >>> [3, vetor = [0]*10 vetor [0] = 3 vetor 0, 0, 0, 0, 0, 0, 0, 0, 0]
  • 18. Usando None  No uso de estruturas de dados, às vezes é importante  preencher uma posição com um valor “não válido”  A melhor opção para esse uso é empregar o valor  especial None  Não faz parte de tipo nenhum  É melhor que usar 0, []  ou uma string vazia  Útil para criar uma lista “vazia” mas com um número  conhecido de posições. Ex.: >>> lista = [None]*5 >>> lista [None, None, None, None, None]
  • 19. Len, min e max  len (lista) retorna o número de elementos de lista  min (lista) e max (lista) retornam o menor/maior  elemento de lista  Ex.: >>> >>> 1 >>> 5 >>> 9 >>> 'c' lista = [1, 2, 9, 3, 4] min (lista) len (lista) max (lista) max (['a', 'b', 'c'])
  • 20. min e max  Na verdade, min e max podem ser usados também com  vários argumentos ao invés de uma lista  Ex.: >>> min (1,2,3,4) 1 >>> max (3,4,5) 5 >>> max ([],[1],['a']) ['a']
  • 21. A função list  Pode ser usada para converter uma string numa lista  É útil pois uma lista pode ser modificada, mas uma string, não  Para fazer a transformação inversa, pode­se usar o método join (veremos métodos mais tarde)  Ex.:         >>> lista = list('alo') >>> lista ['a', 'l', 'o'] >>> lista[1]='xx' >>> lista ['a', 'xx', 'o'] >>> ''.join(lista) 'axxo'
  • 22. A função range  Retorna uma progressão aritmética de inteiros numa lista  Forma geral: range (início, parada, incremento)  início (opcional) é o primeiro valor a ser gerado (default: 0)  parada é o limite da progressão: a progressão termina no  último valor antes de parada  incremento (opcional) é o passo da progressão (default:1)  Ex.: >>> [0, >>> [2, >>> [5, range(3) 1, 2] range(2,5,2) 4] range(5,2,-2) 3]
  • 23. Comando for  Permite iterar sobre os elementos de uma lista  Forma geral: for var  in  lista : comandos  Os comandos são repetidos para cada valor de lista  Durante a repetição, var possui o valor corrente da lista  Uma grande utilidade da função range é construir a  lista de iteração  Ex.: >>>for i in range(1,7): print i, 1 2 3 4 5 6
  • 24. Comparando listas  Listas são comparadas lexicograficamente  Se duas listas são iguais até os k­ésimos elementos, o  resultado da comparação depende da comparação  entre os (k+1)­ésimos elementos   Se alguma das listas tem somente k elementos, então esta é a  menor  Duas listas são iguais se e somente se têm o mesmo  comprimento e todos os elementos de mesma posição  são iguais  Uma lista é maior que um número mas menor que  uma string  Não me pergunte por quê!
  • 25. Comparando listas >>> [1,2] < [2, 3] True >>> [1,2] < [1, 2, 3] True >>> [1,2] != [1,2] False >>> min([[1],[2,3],[3,4],[]]) [] >>> max([[1],[2,3],[3,4],[]]) [3, 4] >>> min(0,[],"") 0 >>> max(0,[],"") ''
  • 26. Variáveis do tipo list  Uma variável do tipo lista na verdade contém uma  referência para um valor do tipo lista  Atribuir uma variável a outra, cria uma nova referência  mas não uma nova lista  Para se criar um novo valor, pode­se usar uma  expressão que retorne o valor desejado  Para saber se duas variáveis se referem ao mesmo  valor pode­se usar o operador is
  • 27. Variáveis do tipo list >>> a = b = [1,2,3] >>> c = a >>> d = c[:] >>> a is b True >>> c is b True >>> d is c False >>> a [1]=5 >>> b [1, 5, 3] >>> d [1, 2, 3]
  • 28. A Classe list  Uma lista é na verdade um objeto de uma classe chamada  list  Não vimos ainda programação OO, mas alguns pontos  devem ser enfatizados  Listas possuem métodos que podem ser aplicados a elas  Um método é semelhante a uma função, mas são  invocados de forma diferente: objeto.método(args)  Ex.: lista.reverse() inverte a ordem dos elementos  da lista  Para saber todos os métodos de listas, escreva  help(list)
  • 29. Alguns métodos da classe list  append(elemento)  Acrescenta o elemento no fim da lista  Observe que a operação altera a lista, e não  simplesmente retorna uma lista modificada  Ex.: >>> >>> >>> [1, >>> >>> [1, lista = [1,2] lista.append(3) lista 2, 3] lista.append([4,5]) lista 2, 3, [4, 5]]
  • 30. Alguns métodos da classe list  count(elemento)  Retorna quantas vezes o elemento aparece na lista  Ex.: >>> [1,2,3,1,2,3,4].count(1) 2  extend(lista2)  Acrescenta os elementos de lista2 ao final da lista  OBS.: Altera a lista ao invés de retornar a lista alterada  Ex.: >>> >>> >>> [1, lista=[1,2] lista.extend([3,4]) lista 2, 3, 4]
  • 31. Alguns métodos da classe list  count(elemento)  Retorna quantas vezes o elemento aparece na lista  Ex.: >>> [1,2,3,1,2,3,4].count(1) 2  extend(lista2)  Acrescenta os elementos de lista2 ao final da lista  OBS.: Altera a lista ao invés de retornar a lista alterada  Ex.: >>> >>> >>> [1, lista=[1,2] lista.extend([3,4]) lista 2, 3, 4]
  • 32. Alguns métodos da classe list  index(elemento)  Retorna o índice da primeira ocorrência de elemento na  lista  Um erro ocorre se elemento não consta da lista  Ex.: >>> lista = [9,8,33,12] >>> lista.index(33) 2 >>> lista.index(7) Traceback (most recent call last): File "<pyshell#3>", line 1, in -toplevellista.index(7) ValueError: list.index(x): x not in list
  • 33. Alguns métodos da classe list  insert(indice, elemento)  insere elemento na lista na posição indicada por índice  Ex.: >>> >>> >>> [0,  Como o extend, altera a lista  ao invés de retornar a lista   lista = [0,1,2,3] lista.insert(1,'dois') lista 'dois', 1, 2, 3] O valor retornado é None! Atribuições a fatias servem para a mesma finalidade  mas são menos legíveis >>> >>> >>> [0, lista = [0,1,2,3] lista [1:1] = ['dois'] lista 'dois', 1, 2, 3]
  • 34. Alguns métodos da classe list  pop(índice)  Remove da lista o elemento na posição índice e o retorna  Se índice não for mencionado, é assumido o último  Ex.: >>> >>> 4 >>> [1, >>> 2 >>> [1, lista = [1,2,3,4] lista.pop() lista 2, 3] lista.pop(1) lista 3]
  • 35. Alguns métodos da classe list  remove(elemento)  Remove da lista o primeiro elemento igual a elemento  Se não existe tal elemento, um erro é gerado  Ex.: >>> lista = ['oi', 'alo', 'ola'] >>> lista.remove('alo') >>> lista ['oi', 'ola'] >>> lista.remove('oba') Traceback (most recent call last): File "<pyshell#24>", line 1, in -toplevellista.remove('oba') ValueError: list.remove(x): x not in list
  • 36. Alguns métodos da classe list  reverse()  Inverte a ordem dos elementos da lista  Ex.: >>> >>> >>> [3, lista=[1,2,3] lista.reverse() lista 2, 1]
  • 37. Alguns métodos da classe list  sort(cmp=None, key=None, reverse=False)  Ordena a lista  Os argumentos são opcionais. Por default, a lista é  ordenada crescentemente  Ex.: >>> >>> >>> [1, lista = [9,8,7,1,4,2] lista.sort() lista 2, 4, 7, 8, 9]
  • 38. Alguns métodos da classe list  sort(cmp=None, key=None, reverse=False)  É possível obter a ordem inversa, passando True para o  argumento reverse  Ex.: >>> >>> >>> [9,  lista = [9,8,7,1,4,2] lista.sort(reverse=True) lista 8, 7, 4, 2, 1] OBS.: A notação acima permite passar um argumento sem  especificar os anteriores, mas poderíamos ter escrito: >>> >>> >>> [9, lista = [9,8,7,1,4,2] lista.sort(None,None,True) lista 8, 7, 4, 2, 1]
  • 39. Alguns métodos da classe list  sort(cmp=None, key=None, reverse=False)  O argumento cmp especifica uma função de comparação    É uma função que o sort chama para definir se um elemento é  anterior ou posterior a outro A função a ser passada tem a forma comp(elem1,elem2) e deve  retornar um inteiro negativo caso elem1 seja anterior a elem2,  positivo caso elem2 seja anterior a elem1 e zero se tanto faz Ex.: >>> def compara(elem1,elem2): return elem1%10 - elem2%10 >>> compara(100,22) -2 >>> lista=[100,22,303,104] >>> lista.sort(compara) >>> lista [100, 22, 303, 104]
  • 40. Alguns métodos da classe list  sort(cmp=None, key=None, reverse=False)  O argumento key especifica uma função aplicada a cada  elemento   Se for passada uma função f, em vez de ordenar os elementos  baseado em seus valores v, ordena baseado em f(v) Ex.: >>> lista = ['abc','de','fghi'] >>> lista.sort(key=len) >>> lista ['de', 'abc', 'fghi']
  • 41. Matrizes  Listas podem ser usadas para guardar matrizes  Por exemplo, podemos criar uma matriz­identidade de  3x3 com o código: m = [] for i in range(3): m.append([0]*3) m[i][i]=1  Obs.: Não é boa idéia iniciar uma matriz assim: m = [[0]*3]*3 for i in range(3): m[i][i]=1 print m  Resultado:[[1, 1, 1], [1, 1, 1], [1, 1, 1]]  (Por quê?)
  • 42. Exercícios  Escreva um programa que intercale os elementos de  duas listas l1 e l2  Exemplo: para l1 = [1,2,3] e l2 = ['a','b','c','d','e'], o programa deve  computar a lista [1,'a',2,'b',3,'c','d','e']  Escreva um programa para computar o produto de  duas matrizes m1 e m2