Tudo sobre listas e tuplas em Python
Neste artigo você aprenderá oque é uma lista como definir, acessar, adicionar, atualizar e remover um registro além de como utilizar os seus métodos.
Listas e tuplas são provavelmente o tipo de dado mais comum em códigos Python
. Em síntese se trata de uma coleção de
dados de qualquer tipo, muito semelhante a uma Array
presente em muitas outras linguagens.
Listas são muito úteis em Python
, diria até que são indispensáveis para programar de forma “Pythonica”, as listas e as
tuplas tem algumas características relevantes, as principais são:
- São ordenadas.
- Podem armazenar qualquer tipo de dado.
- Tem seus elementos acessados por um
índice
(sua “posição” na lista). - Podem ser aninhadas indefinidamente, ou seja, armazenar outra lista, que por sua vez pode armazenar outra lista e assim sucessivamente.
- São mutáveis e dinâmicas.
Como definir uma lista em Python?
Uma lista pode ser definida com uma sequência de objetos entre colchetes([]
):
lista = [1, 2, 3, 4, 5]
Como foi dito antes, podem ser formadas com qualquer tipo de dado:
lista = [True, "Dois", 3.0, {"valor": 4}, 5]
As listas podem conter inclusive uma função ou uma classe, o código abaixo, por exemplo, é um trecho válido.
def funcao_teste(a):
return a + 2
lista = [int, funcao_teste, funcao_teste(3)]
print(lista)
# [<class 'int'>, <function funcao_teste at 0x7f4991024040>, 5]
Em uma lista, a ordem é importante, então duas listas com os mesmos elementos, porém em ordens diferentes, são duas listas distintas, então, o código abaixo retornará False nas duas condicionais:
lista1 = [1, 2, 3]
lista2 = [3, 2, 1]
print(lista1 == lista2)
# False
Uma lista pode armazenar qualquer quantidade de elementos desde 0 até o máximo que a memória do computador/servidor permitir.
Os elementos de uma lista não precisam ser únicos, um mesmo elemento pode aparecer indefinidas vezes na mesma lista.
lista = [1, 1, 1]
print(lista)
# [1, 1, 1]
Acessando e verificando elementos em uma lista
Um elemento pode ser acessado pelo seu índice
, ou seja, sua posição na lista, lembrando que os índices
começam
do 0
e não do 1
como comumente utilizamos em contextos do dia-a-dia.
lista = [1, 2, 3]
print(lista[2])
# 3
Também podemos utilizar o índice
negativo, nesse caso o elemento “-1” é o último elemento da lista.
lista = [1, 2, 3]
print(lista[-1])
# 3
Como extrair parte de uma lista em Python?
Também podemos extrair uma parte da lista, ou seja, uma sub-lista
da lista principal, normalmente chamamos isso de
slice
, para isso faríamos lista[a:b]
onde a
é o início e b
é o final da sub-lista
, vale se atentar que
b
não está incluso na sub-lista
.
lista = [1, 2, 3, 4, 5]
print(lista[1:4])
# [2, 3, 4]
Também podemos utilizar o índice negativo.
lista = [1, 2, 3, 4, 5]
print(lista[1:-1])
# [2, 3, 4]
Caso o objetivo seja iniciar do primeiro elemento da lista, podemos deixar o primeiro parâmetro em branco, nesses casos
a sub-lista
será iniciada no elemento 0
.
lista = [1, 2, 3, 4, 5]
print(lista[:-1])
# [1, 2, 3, 4]
Também podemos fazer o inverso, omitindo o segundo parâmetro, a lista irá até o último elemento.
lista = [1, 2, 3, 4, 5]
print(lista[1:])
# [2, 3, 4, 5]
Como inverter a ordem de uma lista em Python?
Podemos inverter a ordem de uma lista semelhantemente ao feito anteriormente para extrair uma sub-lista
, porém
passaremos um terceiro parâmetro com o valor de -1
.
lista = [1, 2, 3, 4, 5]
print(lista[::-1])
# [5, 4, 3, 2, 1]
Como verificar se um elemento está ou não contido em uma lista em Python?
Para isso utilizaremos o operador in
, da seguinte forma:
lista = [1, 2, 3, 4, 5]
print(4 in lista)
# True
Também podemos verificar o oposto, se o elemento não está na lista, para isso utilizaremos o operador not
:
lista = [1, 2, 3, 4, 5]
print(6 not in lista)
# True
Como saber o tamanho de uma lista em Python?
Para saber quantos elementos está em uma lista podemos utilizar a função len, da seguinte forma:
lista = [1, 2, 3, 4, 5]
print(len(lista))
# 5
Como saber o maior e o menor elemento de uma lista em Python?
Semelhante ao tamanho da lista, para saber o maior elemento e o menor podemos utilizar respectivamente as funções min
e max
, da seguinte forma:
lista = [1, 2, 3, 4, 5]
print(min(lista)) # 1
print(max(lista)) # 5
Atualizando uma lista e seus elementos
Algo interessante das listas diferentes da maioria dos outros tipos de dados é que elas são mutáveis, isso significa que podemos modificar um elemento dela sem precisar definir a lista novamente, isso ajuda muito a trazer uma simplicidade para o código para que qualquer um consiga interpretá-lo.
Como atualizar um elemento da lista em Python?
Para atualizar um elemento de uma lista, basta associar um novo valor ao seu índice
, da seguinte forma:
lista = [1, 2, 3, 4, 5]
print(lista)
# [1, 2, 3, 4, 5]
lista[0] = 99
print(lista)
# [99, 2, 3, 4, 5]
Como adicionar um novo elemento na lista em Python?
Podemos adicionar um novo elemento na lista com o método append
, da seguinte forma:
lista = [1, 2, 3, 4, 5]
print(lista)
# [1, 2, 3, 4, 5]
lista.append(6)
print(lista)
# [1, 2, 3, 4, 5, 6]
Como remover um elemento da lista em Python?
Para remover podemos utilizar alguns métodos, o del
literalmente deleta o elemento da memória, o remove
remove o
elemento passado como parâmetro e retorna um erro caso o elemento não esteja na lista e o pop
é idêntico ao remove
com a diferença de retornar o valor que foi removido e pode ser utilizado com um index
.
lista = [1, 2, 3, 4, 5]
print(lista)
# [1, 2, 3, 4, 5]
del lista[0]
print(lista)
# [2, 3, 4, 5]
lista.remove(2)
print(lista)
# [3, 4, 5]
lista.pop(2)
print(lista)
# [3, 4]
Qual a diferença entre listas e tuplas em Python?
Listas e tuplas em python
são praticamente idênticas, ao ponto de muitas pessoas acreditarem serem a mesma coisa, mas
não são, as diferenças são:
- Tuplas são definidas entre parêntesis (
()
), diferentes de listas que são definidas entre colchetes([]
). - Tuplas não são mutáveis.
Conclusão
Agora que você já sabe o básico de listas e tuplas, que tal aprender a como utilizar dicionários? Dicionários e listas tem algumas semelhanças, mas também diferem em vários pontos. Caso queira aprender mais sobre listas recomendo que dê uma olhada na documentação do Python, é bem completa e mostrará tudo que a linguagem tem a oferecer para lidar com listas e tuplas.