Listas são uma das estruturas de dados mais importantes de Python. Permitem armazenar múltiplos valores em uma única variável e são essenciais para qualquer desenvolvedor Python.
Diferente de arrays em outras linguagens, listas Python são dinâmicas - podem crescer ou diminuir durante a execução e podem conter elementos de diferentes tipos.
Criando Listas
Use colchetes para criar listas:
# Lista vazia
planetas = []
# Lista com elementos
linguagens = ["Python", "JavaScript", "Go", "Rust"]
# Lista com tipos misturados
dados = [1045, "texto", 3.14, True, None]
# Matriz (lista de listas)
matriz = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Para aprender sobre tipos de dados, veja o guia de variáveis e tipos de dados.
Acessando Elementos
Índices começam em zero. Use índices negativos para acessar do final:
frutas = ["maçã", "banana", "laranja", "uva", "morango"]
print(frutas[0]) # maçã (primeiro)
print(frutas[2]) # laranja (terceiro)
print(frutas[-1]) # morango (último)
print(frutas[-2]) # uva (penúltimo)
Slicing (Fatiamento)
Extraia portions da lista usando início:fim:
print(frutas[1:4]) # ["banana", "laranja", "uva"]
print(frutas[:3]) # ["maçã", "banana", "laranja"]
print(frutas[3:]) # ["uva", "morango"]
Adicionando Elementos
numeros = [1, 2, 3]
# adiciona no final
numeros.append(4)
print(numeros) # [1, 2, 3, 4]
# insere em posição específica
numeros.insert(0, 0)
print(numeros) # [0, 1, 2, 3, 4]
# adiciona múltiplos elementos
numeros.extend([5, 6, 7])
print(numeros) # [0, 1, 2, 3, 4, 5, 6, 7]
Removendo Elementos
cores = ["vermelho", "azul", "verde", "amarelo", "azul"]
# remove primeira ocorrência
cores.remove("azul")
print(cores) # ["vermelho", "verde", "amarelo", "azul"]
# remove por índice
cor = cores.pop(0)
print(cor) # vermelho
# remove último elemento
ultima = cores.pop()
print(ultima) # azul
# limpa toda a lista
cores.clear()
print(cores) # []
Métodos Úteis
numeros = [3, 1, 4, 1, 5, 9, 2, 6, 5]
# ordena (modifica a lista)
numeros.sort()
print(numeros) # [1, 1, 2, 3, 4, 5, 5, 6, 9]
# inverte a ordem
numeros.reverse()
print(numeros) # [9, 6, 5, 5, 4, 3, 2, 1, 1]
# conta ocorrências
print(numeros.count(5)) # 2
# encontra índice
print(numeros.index(9)) # 0
# tamanho da lista
print(len(numeros)) # 9
Iterando sobre Listas
planetas = ["Mercúrio", "Vênus", "Terra", "Marte", "Júpiter"]
# Iteração simples
for planeta in planetas:
print(planeta)
# Com índice
for indice, planeta in enumerate(planetas):
print(f"{indice + 1}. {planeta}")
List Comprehension
Crie listas de forma concisa:
# Números pares de 0 a 20
pares = [n for n in range(21) if n % 2 == 0]
# Quadrados de 0 a 9
quadrados = [n ** 2 for n in range(10)]
# Transformar strings
nomes = ["ANA", "pedro", "MARIA"]
formatados = [nome.capitalize() for nome in nomes]
print(formatados) # ['Ana', 'Pedro', 'Maria']
Para aprender mais sobre list comprehension, veja nosso guia completo.
Projeto Prático: Sistema de Tarefas
tarefas = []
def adicionar_tarefa(descricao):
tarefas.append(descricao)
print(f"Tarefa adicionada: {descricao}")
def listar_tarefas():
if not tarefas:
print("Nenhuma tarefa pendente.")
return
print("\nTarefas:")
for i, tarefa in enumerate(tarefas, 1):
print(f"{i}. {tarefa}")
def remover_tarefa(indice):
if 0 <= indice < len(tarefas):
removida = tarefas.pop(indice)
print(f"Removida: {removida}")
else:
print("Índice inválido.")
# Testar
adicionar_tarefa("Estudar Python")
adicionar_tarefa("Fazer exercícios")
adicionar_tarefa("Ler documentação")
listar_tarefas()
remover_tarefa(0)
listar_tarefas()
Quando Usar Listas
Listas são ideais quando:
- A ordem dos elementos importa
- Você precisa acessar elementos por posição
- Precisa de operações de ordenação
- Precisa de valores duplicados
Para acesso por chave, considere usar dicionários.
Listas são fundamentais em Python e aparecem em praticamente todos os projetos. Pratique bastante para dominar!