Especialização em Sistemas com Python & POO com Type Hints • Capítulo 13
🗺️ Mapa Conceitual do Tópico
flowchart TD
A["Coleções Baseadas em Hash (O(1))"] --> B["Conjuntos (set): Teoria dos Conjuntos"]
A --> C["Dicionários (dict): Mapeamento Chave-Valor"]
A --> D["Generics: Generic[T] e TypeVar"]
B --> E["Operações: União (|), Interseção (&), Diferença (-)"]
C --> F["Indexação e Agrupamento O(1)"]
D --> G["Estruturas Reutilizáveis e Tipadas"]
style A fill:#e1f5fe,stroke:#03a9f4,stroke-width:2px
style B fill:#fff3e0,stroke:#ff9800,stroke-width:2px
style C fill:#ede7f6,stroke:#7e57c2,stroke-width:2px
style D fill:#e8f5e9,stroke:#4caf50,stroke-width:2px
🗄️ 1. Tabelas Hash e Complexidade $O(1)$
- Conjuntos (
set): Coleções de elementos únicos com busca e operações matemáticas (|, &, -, ^) em tempo médio constante $O(1)$.
- Dicionários (
dict): Tabelas hash de alta performance mantendo ordem de inserção desde o Python 3.7+.
- Generics (
Generic[T]): Permite criar classes parametrizadas para qualquer tipo de dado sem perda de segurança estática.
💻 Exemplo Prático e Tipado
"""
exemplo_13_generics_sets_e_dicionarios.py - Pilha Genérica Tipada
"""
from typing import Generic, TypeVar
T = TypeVar("T")
class PilhaGenerica(Generic[T]):
def __init__(self) -> None:
self._itens: list[T] = []
def push(self, item: T) -> None:
self._itens.append(item)
def pop(self) -> T:
if not self._itens:
raise IndexError("Pilha vazia.")
return self._itens.pop()
def esta_vazia(self) -> bool:
return len(self._itens) == 0
if __name__ == "__main__":
pilha_str: PilhaGenerica[str] = PilhaGenerica()
pilha_str.push("Primeiro")
pilha_str.push("Segundo")
print(f"Desempilhado: {pilha_str.pop()}")
🔗 Recursos Pedagógicos do Capítulo 13
| Recurso Didático |
Finalidade |
Link de Acesso |
| 📊 Slides de Aula |
Apresentação visual interativa com Dark Mode e suporte a teclado |
Ver Slides |
| 🧠 Quiz Formativo |
Teste interativo de fixação com feedback imediato por alternativa |
Fazer Quiz |
| 💻 Exemplos de Código |
Demonstrações funcionais com Type Hints e saída no console |
Ver Exemplos |
| 🧩 Exercícios em 4 Níveis |
Lista progressiva de fixação com gabarito em bloco colapsável |
Resolver Exercícios |