Nesta nona aula do mini curso, quero falar sobre um dos tipos de dados mais versáteis da linguagem: listas em Python. Elas são incrivelmente úteis no dia a dia do desenvolvimento e aparecem em praticamente todo tipo de projeto. Aqui, vou te mostrar como criar listas, trabalhar com diferentes tipos de dados nelas, adicionar e remover itens, combinar listas, acessar elementos, usar slices e muito mais.
Como criar listas em Python
Criar uma lista em Python é muito simples. Basta usar colchetes:
frutas = ["maçã", "banana", "laranja"]
Você também pode usar a função list() para converter outros iteráveis em uma lista:
letras = list("python")
Uma das grandes vantagens das listas em Python é que elas podem conter elementos de diferentes tipos:
misturada = [1, "texto", 3.14, True]
Essa flexibilidade é interessante em situações específicas, mas é sempre bom manter a consistência do tipo dos dados quando possível, principalmente quando outras pessoas vão ler ou manter seu código.
Adicionando e removendo itens da lista
Durante a execução do código, é comum precisarmos modificar listas adicionando ou removendo elementos. Felizmente, Python facilita bastante isso.
Para adicionar um item ao final da lista, uso o método append():
frutas.append("abacaxi")
Se preciso adicionar em uma posição específica, recorro ao insert():
frutas.insert(1, "morango") # insere morango na posição 1
Também é possível adicionar vários elementos de uma vez com extend():
frutas.extend(["uva", "melancia"])
Já para remover um item, existem várias opções:
frutas.remove("banana") # remove a primeira ocorrência do valor
Ou usando pop() para remover pelo índice (e retornar o valor removido):
item = frutas.pop(0)
Se o índice for inválido, pop() lança um erro, então vale sempre verificar o tamanho da lista antes com len().
E se o objetivo for limpar tudo de uma vez:
frutas.clear()
Juntando listas em Python
Outro ponto essencial sobre listas em Python é a capacidade de combiná-las. A forma mais direta é usando o operador +:
lista1 = [1, 2]
lista2 = [3, 4]
combinada = lista1 + lista2
Se quero adicionar todos os itens de uma lista a outra já existente, prefiro extend():
lista1.extend(lista2)
Essa diferença é importante: + cria uma nova lista, enquanto extend() modifica a original.
Além disso, para listas muito grandes, extend() costuma ser mais performática.
Acessando posições e fazendo slices
Em Python, cada item da lista tem um índice, começando do zero. Posso acessar elementos diretamente com colchetes:
primeira_fruta = frutas[0]
Para pegar o último item, uso índices negativos:
ultima_fruta = frutas[-1]
Uma funcionalidade que uso bastante são os slices. Com eles, pego partes da lista facilmente:
meio = frutas[1:3] # itens do índice 1 até 2
Se quero os três primeiros:
inicio = frutas[:3]
Ou os três últimos:
fim = frutas[-3:]
Também posso usar saltos nos slices:
pares = numeros[::2] # pega um item a cada dois
Essa técnica é ótima quando quero manipular ou filtrar dados rapidamente sem loops explícitos.
Iterando sobre listas
Ao desenvolver um programa é muito comum nos deparar com a necessidade de iterar sobre listas. O mais comum é usar um for:
for fruta in frutas:
print(fruta)
Se preciso também do índice, uso enumerate():
for i, fruta in enumerate(frutas):
print(f"{i}: {fruta}")
E quando quero modificar os itens da lista com base em uma condição, uma abordagem útil é a compreensão de listas:
maiusculas = [f.upper() for f in frutas]
Esse recurso torna o código mais limpo e expressivo. Também posso adicionar uma condição:
grandes = [f for f in frutas if len(f) > 5]
Dicas extras sobre listas em Python
Algumas dicas que costumo aplicar para evitar armadilhas:
- Evito modificar uma lista enquanto estou iterando sobre ela. Isso pode gerar comportamentos inesperados.
- Sempre verifico se um item está na lista antes de operar com ele, usando in:
if "maçã" in frutas:
frutas.remove("maçã")
- Para copiar uma lista sem referência, uso copy() ou slices:
copia1 = frutas[:]
copia2 = frutas.copy()
Isso evita alterações acidentais na lista original quando passo cópias para funções ou variáveis auxiliares.
Conclusão
Entender bem como trabalhar com listas em Python é fundamental para qualquer desenvolvedor que esteja começando na linguagem. Elas aparecem em todos os contextos — de scripts simples até projetos complexos. Saber criar, modificar, combinar e iterar listas vai te dar muito mais liberdade na hora de escrever código limpo e eficiente.
Se quiser explorar mais, recomendo a documentação oficial sobre listas.
Na próxima aula, vamos explorar dicionários, outra estrutura de dados que complementa bem o que vimos até aqui.