As listas são uma das estruturas de dados mais importantes e versáteis do Python. São como coleções organizadas de elementos que podem guardar qualquer tipo de dado.

🎯 Criando Listas

# Lista vazia
planetas = []

# Lista com elementos
linguagens = ["Python", "JavaScript", "Go", "Rust"]

# Lista com tipos diferentes
misturada = [1, "texto", 3.14, True]

# Lista de listas
matriz = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

🔍 Acessando Elementos

frutas = ["maçã", "banana", "laranja", "uva"]

# Índices começam em 0
print(frutas[0])  # maçã
print(frutas[2])  # laranja

# Índices negativos (do final para o início)
print(frutas[-1])  # uva
print(frutas[-2])  # laranja

# Fatiamento (slicing)
print(frutas[1:3])  # ["banana", "laranja"]
print(frutas[:2])   # ["maçã", "banana"]
print(frutas[2:])   # ["laranja", "uva"]

➕ Adicionando Elementos

numeros = [1, 2, 3]

# Adicionar no final
numeros.append(4)  # [1, 2, 3, 4]

# Inserir em posição específica
numeros.insert(0, 0)  # [0, 1, 2, 3, 4]

# Adicionar múltiplos elementos
numeros.extend([5, 6, 7])  # [0, 1, 2, 3, 4, 5, 6, 7]

➖ Removendo Elementos

cores = ["vermelho", "azul", "verde", "amarelo"]

# Remover por valor
cores.remove("azul")  # ["vermelho", "verde", "amarelo"]

# Remover por índice
cor_removida = cores.pop(0)  # Remove "vermelho"

# Remover último elemento
ultima = cores.pop()  # Remove "amarelo"

# Limpar toda a lista
cores.clear()  # []

🔧 Métodos Úteis

numeros = [3, 1, 4, 1, 5, 9, 2, 6]

# Ordenar
numeros.sort()  # [1, 1, 2, 3, 4, 5, 6, 9]

# Inverter
numeros.reverse()  # [9, 6, 5, 4, 3, 2, 1, 1]

# Contar ocorrências
quantidade = numeros.count(1)  # 2

# Encontrar índice
posicao = numeros.index(5)  # 2

# Tamanho da lista
tamanho = len(numeros)  # 8

🔄 Iterando sobre Listas

planetas = ["Mercúrio", "Vênus", "Terra", "Marte"]

# For simples
for planeta in planetas:
    print(planeta)

# For com índice
for i, planeta in enumerate(planetas):
    print(f"{i + 1}. {planeta}")

# List comprehension
maiusculas = [p.upper() for p in planetas]

💡 List Comprehension Avançado

# Números pares de 0 a 20
pares = [n for n in range(21) if n % 2 == 0]

# Quadrados
quadrados = [x ** 2 for x in range(10)]

# Filtrar e transformar
nomes = ["ANA", "pedro", "MARIA"]
formatados = [n.capitalize() for n in nomes]

🎓 Projeto Prático: Sistema de Tarefas

tarefas = []

def adicionar_tarefa(tarefa):
    tarefas.append(tarefa)
    print(f"✅ Tarefa adicionada: {tarefa}")

def listar_tarefas():
    if not tarefas:
        print("Nenhuma tarefa cadastrada.")
        return

    print("\\n📋 Suas Tarefas:")
    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"🗑️ Tarefa removida: {removida}")
    else:
        print("❌ Índice inválido")

# Testando
adicionar_tarefa("Estudar Python")
adicionar_tarefa("Fazer exercícios")
listar_tarefas()
remover_tarefa(0)
listar_tarefas()

Listas são fundamentais em Python. Quer aprender mais sobre estruturas de dados? Confira nosso curso completo!