🧩 Exercícios: Gestão de Memória e Coleções: Listas, Tuplas e Matrizes 2D
Spec Sistemas Com Python • Trilha Progressiva em 4 Níveis
🎯 Nível 1: Fundamentos
Problema 06.1 — List Comprehensions com Filtragem Condicional
Contexto: List Comprehensions com Filtragem Condicional no contexto de Gestão de Memória e Coleções: Listas, Tuplas e Matrizes 2D.
Requisitos de Execução:
- Gerar lista de quadrados apenas para números pares a partir de uma faixa inicial.
Resultado Esperado
Lista transformada e filtrada em expressão declarativa concisa.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_06_1_SeuNome - Envie na tarefa:
Atividade Cap 06 - Gestão de Memória e Coleções: Listas, Tuplas e Matrizes 2D
🔑 Gabarito de Código & Solução Comentada
numeros = list(range(1, 11))
quadrados_pares = [x**2 for x in numeros if x % 2 == 0]
cubos_impares = [x**3 for x in numeros if x % 2 != 0]
print(f"Pares ao quadrado: {quadrados_pares}")
print(f"Impares ao cubo: {cubos_impares}")
🔍 Nível 2: Prática
Problema 06.2 — Matrizes Multidimensionais com Listas Aninhadas e Transposição
Contexto: Matrizes Multidimensionais com Listas Aninhadas e Transposição no contexto de Gestão de Memória e Coleções: Listas, Tuplas e Matrizes 2D.
Requisitos de Execução:
- Criar matriz 3x3 e calcular sua transposta utilizando list comprehensions.
Resultado Esperado
Matriz transposta calculada com elegância funcional.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_06_2_SeuNome - Envie na tarefa:
Atividade Cap 06 - Gestão de Memória e Coleções: Listas, Tuplas e Matrizes 2D
🔑 Gabarito de Código & Solução Comentada
matriz = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
transposta = [[matriz[j][i] for j in range(len(matriz))] for i in range(len(matriz[0]))]
print("Matriz Transposta:", transposta)
⚡ Nível 3: Integração
Problema 06.3 — Deep Copy vs Shallow Copy com o Módulo copy
Contexto: Deep Copy vs Shallow Copy com o Módulo copy no contexto de Gestão de Memória e Coleções: Listas, Tuplas e Matrizes 2D.
Requisitos de Execução:
- Demonstrar que
copy.deepcopy()isola completamente estruturas aninhadas prevenindo efeitos colaterais.
Resultado Esperado
Cópia profunda realizada com isolamento total de grafos de objetos.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_06_3_SeuNome - Envie na tarefa:
Atividade Cap 06 - Gestão de Memória e Coleções: Listas, Tuplas e Matrizes 2D
🔑 Gabarito de Código & Solução Comentada
import copy
original = [[1, 2], [3, 4]]
clonado = copy.deepcopy(original)
clonado[0][0] = 99
print(f"Original[0][0]={original[0][0]} | Clone[0][0]={clonado[0][0]} (Independentes)")
🏆 Nível 4: Desafio Corporativo
Problema 06.4 — Contagem de Referências e Módulo gc (Garbage Collector)
Contexto: Contagem de Referências e Módulo gc (Garbage Collector) no contexto de Gestão de Memória e Coleções: Listas, Tuplas e Matrizes 2D.
Requisitos de Execução:
- Inspecionar contagem de referências de objetos com
sys.getrefcount()e forçar ciclos de coleta.
Resultado Esperado
Métricas do Garbage Collector do CPython inspecionadas em tempo de execução.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_06_4_SeuNome - Envie na tarefa:
Atividade Cap 06 - Gestão de Memória e Coleções: Listas, Tuplas e Matrizes 2D
🔑 Gabarito de Código & Solução Comentada
import sys
import gc
dados = [1, 2, 3]
print(f"Contagem de referencias de 'dados': {sys.getrefcount(dados) - 1}")
coletados = gc.collect()
print(f"Objetos inalcançaveis coletados pelo GC: {coletados}")