Laboratório de
Programação
Aula 05 - Listas
Prof.: Robson Gomes
Listas em
Python
▪ Como uma string, uma lista é uma sequência de valores. Em uma string, os valores
são caracteres; em uma lista, eles podem ser de qualquer tipo.. Para definir uma
lista são usados colchetes [ ]
listaDeDados = ['0', 1 ,'2', 3 ,'4',5]
print (listaDeDados)
print (listaDeDados[1])
print (listaDeDados[0:2]) #imprime de onde até onde?
print (listaDeDados[0:14]) #e se extrapolar pra mais?
print (listaDeDados[:2]) #os dois primeiros
print (listaDeDados[2:]) #tudo menos os dois primeiros
print (listaDeDados[-1]) #o último
print (listaDeDados[-2]) #o penúltimo
print (listaDeDados[-2:]) #os dois últimos
print (listaDeDados[:-2]) #todos menos os dois últimos
▪ Agora tem outras possibilidades. Podemos manipular os dados.
listaDeDados = ['0', 1 ,'2', 3 ,'4',5]
print (listaDeDados[1])
listaDeDados[1] = "numero"
print (listaDeDados[1])
▪ Mas... Nada de extrapolar!
listaDeDados = ['0', 1 ,'2', 3 ,'4',5]
print (listaDeDados[6]) #também não pode extrapolar
lista = ["CEULP", 5, "23", 100]
nova = lista[:2]
print ("Mudança 1:", nova)
nova = lista[2:]+["a",3*10]
print ("Mudança 2:", nova)
Mudança 1: ['CEULP', 5]
nova = 3*lista[:3] Mudança 2: ['23', 100, 'a', 30]
Mudança 3: ['CEULP', 5, '23', 'CEULP', 5, '23', 'CEULP', 5, '23']
print ("Mudança 3:", nova)
▪ Trabalhando com a Lista
▪ Criando Lista vazia
listaVazia = []
▪ Criando Lista com somente um valor
listaComUm = [1]
▪ Tamanho da Lista: len
print (len (listaVazia))
print (len (listaComUm))
a = ["p", "q", "r"]
b = ["t", a, "u"]
print ("Tamanho de b:", len(b))
print ("b:", b)
print ("b[1]:", b[1])
Tamanho de b: 3
print ("b[1][0]:", b[1][0]) b: ['t', ['p', 'q', 'r'], 'u']
b[1]: ['p', 'q', 'r']
b[1][0]: p
▪ append(x) -- insere x no fim da lista
lista1 = ["a", "b", "c"]
print ("lista1 antes do append:", lista1)
lista1.append("f")
print ("lista1 depois do append:", lista1)
lista1 antes do append: ['a', 'b', 'c']
lista1 depois do append: ['a', 'b', 'c', 'f']
▪ append(x) -- e se eu inserir uma lista x no fim da lista?
lista1 = ["a", "b", "c"]
lista2 = ["d", "e"]
print ("lista1 antes do append:", lista1)
lista1.append(lista2)
print ("lista1 depois do append:", lista1)
lista1 antes do append: ['a', 'b', 'c']
lista1 depois do append: ['a', 'b', 'c', ['d', 'e']]
▪ extend (L) -- insere a lista L no fim da lista original
lista1 = ["a", "b", "c"]
lista2 = ["d", "e"]
print ("lista1 antes do extend:", lista1)
lista1.extend(lista2)
print ("lista1 depois do extend:", lista1)
lista1 antes do extend: ['a', 'b', 'c']
lista1 depois do extend: ['a', 'b', 'c', 'd', 'e']
▪ insert(i, x) -- insere x na posição i
▪ O primeiro argumento é o índice do elemento antes do qual será feita a inserção
lista1 = ["a", "b", "c"]
print ("lista1 antes do insert:", lista1)
lista1.insert(2,"k")
print ("lista1 depois do insert:", lista1)
lista1 antes do insert: ['a', 'b', 'c']
lista1 depois do insert: ['a', 'b', 'k', 'c']
▪ remove(x) -- remove o primeiro item encontrado na lista cujo valor é igual a x. Se
não existir valor igual, uma exceção ValueError é levantada.
lista1 = ["a", "b", "c"]
print ("lista1 antes do remove:", lista1)
lista1.remove("b")
print ("lista1 depois do remove:", lista1)
lista1 antes do remove: ['a', 'b', 'c']
lista1 depois do remove: ['a', 'c']
▪ remove(x) -- mostrando erro
lista1 = ["a", "b", "c"]
print ("lista1 antes do remove:", lista1)
lista1.remove("f")
print ("lista1 depois do remove:", lista1)
Traceback (most recent call last):
File "tuplas.py", line 95, in <module>
lista1.remove("f")
ValueError: list.remove(x): x not in list
▪ pop(i) -- Remove o item na posição dada e o retorna. Se nenhum índice for
especificado, o comando remove e retorna o último item na lista. i é opcional
lista1 = ["a", "b", "c"]
print ("lista1 antes do pop:", lista1)
x = lista1.pop(1)
print ("lista1 depois do pop:", lista1)
lista1 antes do pop: ['a', 'b', 'c']
print ("Valor de x:", x)
lista1 depois do pop: ['a', 'c']
Valor de x: b
▪ pop(i) -- testando sem o i
lista1 = ["a", "b", "c"]
print ("lista1 antes do pop:", lista1)
x = lista1.pop()
print ("lista1 depois do pop:", lista1)
lista1 antes do pop: ['a', 'b', 'c']
print ("Valor de x:", x)
lista1 depois do pop: ['a', 'b']
Valor de x: c
▪ index(x) -- retorna o índice do primeiro item cujo valor é igual a x, gerando a
exceção ValueError se o valor não existir
lista1 = ["a", "b", "c"]
indice = lista1.index("b")
print ("indice=", indice)
indice= 1
▪ count(x) -- devolve o número de vezes que o valor x aparece na lista.
lista1 = ["a", "b", "c", "b"]
print ("Quantidade de \"b\" =", lista1.count("b"))
print ("Quantidade de \"t\" =", lista1.count("t"))
Quantidade de "b" = 2
Quantidade de "t" = 0
▪ sort() -- ordena os itens na própria lista.
lista1 = ["x", "b", "v", "b"]
print ("lista1 antes do sort:", lista1)
lista1.sort()
print ("lista1 depois do sort:", lista1)
lista1 antes do sort: ['x', 'b', 'v', 'b']
lista1 depois do sort: ['b', 'b', 'v', 'x']
▪ reverse() -- inverte a ordem dos elementos na lista.
lista1 = ["x", "b", "v", "b"]
print ("lista1 antes do reverse:", lista1)
lista1.reverse()
print ("lista1 depois do reverse:", lista1)
lista1 antes do reverse: ['x', 'b', 'v', 'b']
lista1 depois do reverse: ['b', 'v', 'b', 'x']
▪ del(i) -- remove o elemento pelo índice sem retorná-lo. Atente-se que a sintaxe
muda. Permite eliminar slices também
lista1 = ["x", "b", "v", "b"] lista1 antes do del: ['x', 'b', 'v', 'b']
print ("lista1 antes do del:", lista1) lista1 depois do primeiro del: ['x', 'v', 'b']
del lista1[1] lista1 depois do segundo del: ['b']
print ("lista1 depois do primeiro del:", lista1)
del lista1[0:2]
print ("lista1 depois do segundo del:", lista1)
FOR
▪ O for só funciona para estruturas em que você sabe quantas vezes haverá a
repetição, tipo listas.
lista=["a“, “b“, “c"]
for i in lista:
print (i)
a
b
c
0
for i in range(10): 1
print(i) 2
3
4
5
6
7
8
9
Testar no for:
range(5,10)
range(0,10,2)
0 - uva
1 - pera
lista=["uva", "pera", "maça"] 2 - maça
for i in range(len(lista)):
print (i, "-",lista[i])
lista=["1","2","3"]
for i in lista:
lista.append(i)
print(i)
Laboratório de
Programação
Aula 05 - Listas
Prof.: Robson Gomes