Listas
Listas são sequências mutáveis e ordenadas de objetos. Os elementos de uma lista podem ser alterados ou eliminados.
Os elementos de uma lista são indexados, sendo o índice do primeiro elemento o zero.
Criação de uma lista
Uma lista é criada especificando os seus elementos entre parenteses retos e separados por vírgulas. Os elementos de uma lista não necessitam ser todos do mesmo tipo.
#Criação de uma lista
lista = [1, 'Lisboa', 2, 'Faro', 3, 'Évora', 4, 'Almada']
Podemos criar listas dentro de listas:
lista = [1, 2, 3, [4, 5, 6]]
Tamanho de uma lista
Obtemos o tamanho de uma lista através da função len():
lista = [1, 'Lisboa', 2, 'Faro', 3, 'Évora', 4, 'Almada']
#mostra o tamanho da lista:
print( len(lista) ) #Output: 8
Acesso aos elementos de uma lista
Acesso através de índice
O acesso a um elemento é feito pondo um índice entre parenteses reto:
lista = [1, 'Lisboa', 2, 'Faro', 3, 'Évora', 4, 'Almada']
print( lista[0] ) # mostra o elemento 1
print( lista[3] ) # mostra o elemento 'Faro'
Podemos alterar o valor de um elemento:
lista = [1, 'Lisboa', 2, 'Faro', 3, 'Évora', 4, 'Almada']
lista[2] = 6 #altera o 3º elemento
Podemos aceder ao último elemento de uma lista com o índice -1, ao penúltimo, com o índice -2, etc..:
lista = [1, 'Lisboa', 2, 'Faro', 3, 'Évora', 4, 'Almada']
print( lista[-1] ) # mostra o último elemento 'Almada'
print( lista[-2] ) # mostra o penúltimo elemento 4'
Acesso a um intervalo de elementos através de fatiamento (slicing)
Podemos aceder a um intervalo elementos especificando um intervalo de índices entre um início e um fim, exclusive:
lista = [1, 'Lisboa', 2, 'Faro', 3, 'Évora', 4, 'Almada']
print( lista[1:3] ) # mostra o segundo e terceiro elementos ('Lisboa', 2).
Se o índice de fim for omitido, mostra todos os elementos desde o índice de início até ao fim da lista:
lista = [1, 'Lisboa', 2, 'Faro', 3, 'Évora', 4, 'Almada']
print( lista[3:] ) # mostra todos os elementos desde o elemento com o índice 3 ('Faro') até ao fim da lista.
Desempacotamento
O desempacotamento em listas em Python permite atribuir, de forma direta, os valores de uma lista para múltiplas variáveis em uma única linha.
Exemplo:
lista = [1, 2, 3]
a, b, c = lista
# a = 1, b = 2, c = 3
Se a quantidade de variáveis não corresponder ao número de elementos, ocorre erro.
Se não quisermos usar todos os valores, podemos usar o underscore (_) para ignorar variáveis:
lista = [1, 2, 3]
a, _, _ = lista
print(a) #Saída: 1
Podemos usar o operador *
para capturar múltiplos valores de uma lista:
numeros = [1, 2, 3, 4, 5]
primeiro, *meio, ultimo = numeros
# primeiro = 1, meio = [2, 3, 4], ultimo = 5
O operador *
pode aparecer em qualquer posição, exceto sozinho, e é útil para capturar o “resto” dos elementos.
Também é possível desempacotar listas ao passar argumentos para funções, usando *
para passar cada elemento como um argumento separado:
def soma(a, b, c):
return a + b + c
valores = [1, 2, 3]
resultado = soma(*valores) # resultado = 6
Operações com listas
As operações com listas são as operações básicas que se usam com sequências, e são as seguintes:
Operação | Output | Descrição |
---|---|---|
[10, 20, 30]+ [40, 50, 60] | [10, 20, 30, 40, 50, 60] | Concatenação |
[ 1, 3, 5] * 3 | [1, 3, 5, 1, 3, 5, 1, 3, 5] | Repetição |
40 in [30, 40, 50] | True | Pertença |
for x in [10,20,30]: print(x) | 10 20 30 | Iteração |
Percorrer uma lista
Iteração de uma lista percorrendo diretamente os seus elementos:
lista = [1, 'Lisboa', 2, 'Faro', 3, 'Évora', 4, 'Almada']
for e in lista:
print( e )
O output do exemplo acima é:
1 Lisboa 2 Faro 3 Évora 4 Almada
Iteração de uma lista percorrendo os seus elementos usando os seus índices e a função range():
lista = [1, 'Lisboa', 2, 'Faro', 3, 'Évora', 4, 'Almada']
# obtemos o intervalo de índices da lista com a função range()
# e percorremos esse intervalo de índices:
for i in range( len(lista) ):
print( lista[i] )
Output:
1 Lisboa 2 Faro 3 Évora 4 Almada
Adicionar elementos a uma lista
Para adicionar um elemento no final de uma lista usamos o método append():
lista = [1, 2, 3, 4]
lista.append(5)
print(lista)
Output:
[1, 2, 3, 4, 5]
Para adicionar os elementos de uma lista no final de outra lista usamos o método extend():
lista = [1, 2, 3, 4]
lista.extend([10, 20, 30])
print(lista)
Output:
[1, 2, 3, 4, 10, 20, 30]
Para inserirmos um elemento numa determinado posição de uma lista, usamos o método insert():
lista = [1, 2, 3, 4]
#insere o elemento 10 na 2ª posição da lista:
lista.insert(1, 10)
print(lista)
Output:
[1, 10, 2, 3, 4]
Verificar se um elemento existe numa lista
Para verificar se um elemento existe numa lista, podemos usar o operador in:
ista = [1, 2, 3, 4, 5, 6, 3]
if 3 in lista:
print("Existe na lista")
else:
print("Não existe na lista")
Output:
"Existe na lista"
Eliminação de elementos de uma lista
Podemos eliminar elementos de uma lista usando a instrução del ou o método remove().
Instrução del
A instrução del remove elementos de uma lista através de um índice ou intervalo de índices.
Exemplo 1 :
lista = [1, 'Lisboa', 2, 'Faro', 3, 'Évora', 4, 'Almada']
#elimina o elemento com o índice 1 ('Lisboa'):
del lista[1]
print(lista)
Output:
[1, 2, 'Faro', 3, 'Évora', 4, 'Almada']
Exemplo 2:
lista = [1, 'Lisboa', 2, 'Faro', 3, 'Évora', 4, 'Almada']
#elimina o elementos com os índices 1, 2, 3, 4 :
del lista[1:5]
print(lista)
Output:
[1, 'Évora', 4, 'Almada']
Método remove()
O método remove() permite eliminar um elemento pelo seu valor, não pelo seu índice:
lista = [1, 'Lisboa', 2, 'Faro', 3, 'Évora', 4, 'Almada']
#elimina o elementos 'Faro' :
lista.remove('Faro')
print( lista )
Output:
[1, 'Lisboa', 2, 3, 'Évora', 4, 'Almada']
Se houver vários elementos com o mesmo valor o método remove() elimina o primeiro:
lista = [1, 'Lisboa', 2, 'Faro', 3, 'Évora', 4, 'Faro', 'Almada']
#elimina o 1º elemento 'Faro' :
lista.remove('Faro')
print( lista )
Output:
[1, 'Lisboa', 2, 3, 'Évora', 4, 'Faro', 'Almada']
NOTA: caso tentemos remover um elemento que não exista na lista dá erro.
Funções com listas
max()
A função max(), retorna o elemento com o maior valor da lista.
lista = [73, 21, 98, 7]
print(max(lista)) #Saída: 98
min()
A função min(), retorna o elemento com o menor valor da lista.
lista = [73, 21, 98, 7]
print(min(lista)) #Saída: 7