Listas

A principal coleção do Python

Depois de conhecer o que são coleções no Python, é hora de mergulhar na mais utilizada delas: a lista. Ela aparece em praticamente todo tipo de programa porque é simples, flexível e fácil de trabalhar.

O que é uma lista?

Uma lista permite guardar vários valores dentro de uma única variável. Ela é uma coleção:

  • ordenada, que mantém a ordem dos itens dentro dela;
  • mutável, permitindo alterações a qualquer momento;
  • que pode armazenar tipos variados, como números, strings e até outras listas.

Veja como funciona:

1frutas = ["maçã", "banana", "uva"] 2print(frutas) 3 4# Saída: 5# ['maçã', 'banana', 'uva']

Você também pode criar listas vazias:

1lista_vazia = [] 2print(lista_vazia) 3 4# Saída: 5# []

O que é um índice?

Algumas coleções guardam valores em sequência, e cada valor ocupa uma posição chamada índice.

No dia a dia, costumamos contar a partir do 1 (primeiro item, primeira cadeira, primeiro capítulo). Mas em Python, e na maior parte das linguagens, a contagem começa no 0.

Isso significa que:

  • o primeiro item está na posição 0
  • o segundo está na posição 1
  • o terceiro está na posição 2

Pense no índice como o número de uma casa em uma rua: ele diz onde cada item está. Para acessar um item, usamos o número da posição dele na lista, ou seja, seu índice, dentro dos colchetes ([]):

1cores = ["azul", "verde", "roxo"] 2 3print(cores) 4print(cores[0]) 5print(cores[1]) 6print(cores[2]) 7 8# Saída: 9# ['azul', 'verde', 'roxo'] 10# azul 11# verde 12# roxo

Essa forma de contagem pode parecer estranha no começo, mas logo se torna natural.

Índices negativos

Python também permite contar de trás para frente usando índices negativos:

  • -1 → último item
  • -2 → penúltimo item
  • e assim em diante...
1cores = ["azul", "verde", "roxo"] 2 3print(cores[-1]) 4print(cores[-2]) 5print(cores[-3]) 6 7# Saída: 8# roxo 9# verde 10# azul

Fatiamento (slicing)

Podemos também acessar intervalos da lista. Para isso, usamos o índice do início do intervalo e o índice do fim dentro dos colchetes, separados por dois pontos: lista[início:fim].

Mas tem um detalhe importante: o item de início é incluído no intervalo e o de fim não é. Observe como funciona:

1frutas = ["maçã", "banana", "uva", "laranja", "kiwi"] 2print(frutas[1:4]) 3 4# Saída: 5# ['banana', 'uva', 'laranja']

Apenas os dados nas posições 1 ("banana"), 2 ("uva") e 3 ("laranja) são impressos. O que está na posição 4 ("kiwi") não é incluído.

Também é possível usar índices negativos para selecionar itens. O intervalo [-4:-1] começa em "laranja" e vai até antes de "manga":

1frutas = ["maçã", "banana", "cereja", "laranja", "kiwi", "melão", "manga"] 2print(frutas[-4:-1]) 3 4 5# Saída: 6# ['laranja', 'kiwi', 'melão']

Algumas variações úteis:

1frutas = ["maçã", "banana", "uva", "laranja", "kiwi"] 2 3print(frutas[:3]) # do início até antes do índice 3 4print(frutas[2:]) # do índice 2 até o final 5print(frutas[::2]) # pulando de 2 em 2 (índices 0, 2 e 4) 6 7# Saída: 8# ['maçã', 'banana', 'uva'] 9# ['uva', 'laranja', 'kiwi'] 10# ['maçã', 'uva', 'kiwi']

Percebeu o poder das listas como ferramenta do nosso código?

Na próxima lição, vamos explorar como manipulá-las: adicionar, remover, reorganizar e modificar seus valores. Vamos usar os principais recursos que o Python oferece para trabalhar com esse tipo de estrutura.