Escolha contêineres pela forma como você lê, atualiza e percorre os dados - não por hábito. A estrutura errada custa clareza e desempenho assintótico; a correta torna o código mais curto e rápido sem micro-otimizações.
# cheiro: busca linear repetidaif item in big_list: # O(n) a cada vez# correção: construir set uma vezseen = set(big_list)if item in seen: # O(1) em média
list como set - if x in items em lista grande em loop → O(n²). Correção: Pré-construir set(items).
dict quando list de pares é suficiente - Registros de dois itens às vezes são melhores como tuplas em lista. Correção: Simplificar até que a consulta por chave seja necessária.
pandas para 20 linhas - Importação pesada e overhead de API. Correção: dict/list simples até centenas de linhas ou operações de coluna.
OrderedDict por padrão - Desnecessário, pois dict é ordenado. Correção: dict simples, a menos que move_to_end.
Heap prematuro - Cinco itens ordenados uma vez → sorted. Correção: heap quando k << n ou streaming.