Escolar Documentos
Profissional Documentos
Cultura Documentos
***************************************************************************************************
***************************************************************************************************
- Definição:
Lista é um conjunto formado por elementos de qualquer tipo. (Int, float, str, etc)
Assim como int e float, também existe um tipo de variável lista chamado >> l ist <<!
dados = [ [“Dog”, “Cat”, “Bird” ], [10.5, 25.7 ] , [1, 2, 3] ]
Sim! Podemos colocar elementos de vários tipos e cada elemento da lista tb pode ser uma
lista! :O
------------------------------------------------------- // ------------------------------------------------------------
Temos a seguinte lista de pets e queremos trocar a string “Bird” por “Pombo”
pets[0] = “Pombo”
------------------------------------------------------- // ------------------------------------------------------------
OBS: A função >> min << é o mesmo esquema, só que retorna o >> menor << valor!
5) O método insert recebe como parâmetro o índice e o elemento que queremos inserir na
lista.
vals = [1,2,3]
vals.reverse()
print(vals) # Exibe [3, 2, 1]
OBS: Esses métodos >> Não << funcionam com sub listas e a ordenação só funciona com
elementos do mesmo tipo!
------------------------------------------------------- // ------------------------------------------------------------
- Operações em Lista:
1) Concatenação:
l1 = [1,2,3,4]
l2 = [-2, -1, 0, 1,2]
l3 = l1 + l2
print(l3) # Exibe [1, 2, 3, 4, -2, -1, 0, 1, 2]
OBS: Observe que concatenação mantém elementos repetidos! E só funciona com listas!
vals = [1,2,3,4]
x = 20
vals += [x]
print(vals)
OBS: Nesse caso vamos precisar colocar a variável x obrigatoriamente entre colchetes!
2) Replicar elementos da lista: (Atalho para Inicializar)
Podemos usar o operador >> * << para criar uma lista com elementos duplicados.
Uma das principais vantagens é criar uma lista inicializada com zero.
Imagine um programa que contabiliza o total de votos pra cada um dos 5 candidatos de
uma eleição. Como vamos precisar fazer um somatório à medida que vamos lendo os
votos, então obrigatoriamente precisamos >> inicializar << a lista toda com zero!
total = 5* [0]
OBS: É o mesmo que escrever total = [0, 0, 0, 0, 0] só que mil vezes mais prático, pois
imagine se fossem 300 candidatos. :D
l1 = [1,2,3,4]
l2 = 2*l1
print(l2) # Exibe [1,2,3,4,1,2,3,4]
------------------------------------------------------- // ------------------------------------------------------------
OBS: A função range sempre gera uma >> Sequência << de números, mas NÃO é do tipo
lista! (Na verdade é do tipo Tupla, mas como esse tipo não será ensinado em prog 1, então
“desleia” essa frase :D )
OBS: Útil pra gerar rapidamente uma lista pra testar o programa. O único problema é que
só é capaz de gerar lista com sequência de valores ordenados!
import random
OBS: Não precisamos converter para list! Pois os elementos escolhidos pela sample já
formam uma lista! :)
------------------------------------------------------- // ------------------------------------------------------------
Recursão em lista:
Não é recomendado usar recursão em lista devido ao alto custo de memória. (Dependendo
do tamanho da lista)
Então recursão em lista >> só << será usada, se caso houver s ub listas nos elementos da
lista! Com isso, a recursão ficará encarregada de percorrer as sub listas.
EX: Faça uma função recursiva que conta a quantidade de elementos de uma lista.
Teste seu programa com a lista [1,2,3,4,5] e [1, [2,3,4], 5]
def contElemRec(vals):
if(not vals):
return 0
return 1 + calcAlgRec(vals[1:])
l1 = [1,2,3,4,5]
l2 = [1, [2,3,4], 5]
print(calcAlgRec(l1)) # Exibe 5
print(calcAlgRec(l2)) # Exibe 3
EX: Faça uma função recursiva que retorna o somatório dos elementos da lista.
def somaListRec(vals):
if(not vals):
return 0
elif(type(vals[0]) == list):
return somaListRec(vals[0])+ somaListRec(vals[1:])
l1 = [1,2,3,4,5]
l2 = [1,[2,3,4], 5]
print(somaListRec(l1)) # Exibe 15
print(somaListRec(l2)) # Exibe 15
------------------------------------------------------- // ------------------------------------------------------------
- Busca em lista:
vals = [10, 3, 5]
x=3
if (not x in lista):
------------------------------------------------------- // ------------------------------------------------------------
l1 = [ [ 2,3], [1,2]]
x=3
OBS: A busca >> Não << funciona em sub listas, pois a comparação é sempre entre
elementos da lista e não com sub listas!
------------------------------------------------------- // ------------------------------------------------------------
- Separar/Dividir/Fatiar uma lista:
OBS: Exatamente da mesma forma como é feito em string! Lembrando que o passo padrão
(Default) é sempre 1.
------------------------------------------------------- // ------------------------------------------------------------
vals = [10,20,30,40]
for x in vals:
print(“Elemento:”, x)
vals = [10,20,30,40]
for i in range(len(vals)):
print("Índice:", i)
print("Elemento", lista[ i ] )
OBS: Lembrando que quando usamos a função >> r ange << obrigatoriamente a variável >>
i << assume os valores dos >> índices << da lista! E sim! É justamente por isso que
recomendo chamar a variável de i quando usar a função range! :)
vals = [10,20,30,40]
for i, x in enumerate(vals):
print("Indice:", i)
print("Elemento", x )
Repetição Indeterminada em Listas:
- Criar uma lista com nomes digitados pelo usuário. A leitura será encerrada caso
seja digitado “fim”.
nomes =[]
nome = input("Digite o nome:”)
while (nome != "fim"):
nomes += [nome]
nome = input("Digite o nome:")
------------------------------------------------------- // ------------------------------------------------------------
l2 = l1
OBS: Comando de atribuição usado dessa forma funciona para >> C lonar << Lista! Dessa
forma estamos fazendo uma cópia da referência da lista l1! Com isso, qualquer alteração
feita na lista l2 também altera a lista l1!!! Muito cuidado, pois em 95% dos casos, não é isso
que queremos fazer! =x
OBS: Dessa forma estamos fazendo uma >> Cópia << mas >> Somente << uma cópia do
conteúdo da lista original! E não uma cópia da referência! Então nesse caso l1 e l2 são
listas >> DIFERENTES << apesar de possuírem os mesmos elementos. E sendo assim,
alterações feitas numa lista nunca afeta a outra!
------------------------------------------------------- // ------------------------------------------------------------