Enumere com itertools
Produtos, combinações e permutações.
Enumere com itertools é uma aula grátis de Coding Interview Prep no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Coding Interview Prep, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Coding Interview Prep inclui 4 aulas no total.
Deixe itertools cuidar dos laços
O itertools do Python gera combinations e ordenações para você, permitindo escrever menos código de laços e cometer menos erros. 🙂
Faça a importação primeiro
Tudo fica em um único módulo, então comece com import itertools. Depois, você poderá chamar product, permutations e combinations diretamente.
import itertoolsproduct para laços aninhados
Use product para substituir laços profundamente aninhados sobre as mesmas escolhas. Ele produz cada tupla de escolhas nos intervalos fornecidos.
for combo in itertools.product(range(3), repeat=2):
print(combo)permutations para ordenações
Quando a ordem importa, permutations lista todas as disposições dos itens. É perfeito para uma solução de força bruta pequena no estilo do problema do caixeiro-viajante.
for p in itertools.permutations([1, 2, 3]):
print(p)combinations para escolher
Quando a ordem não importa, combinations escolhe todos os grupos de tamanho r. É excelente para escolher um subconjunto de itens a ser testado.
for c in itertools.combinations([1, 2, 3, 4], 2):
print(c)Permutações versus combinações
A diferença principal é a ordem: permutations trata (1,2) e (2,1) como distintos, enquanto combinations conta ambos como a mesma escolha.
Cuidado com o crescimento
As permutações crescem como n!, o que aumenta rapidamente. Até mesmo n igual a 11 já ultrapassa quarenta milhões de disposições, portanto mantenha n pequeno.
Elas são geradoras
Essas funções são geradoras: produzem um item por vez sem criar uma lista enorme, mantendo baixo o consumo de memória enquanto você percorre os resultados.
Combine com uma verificação
Gere candidatos e depois mantenha apenas aqueles que passam no seu teste. Esse padrão transforma uma busca difícil em um laço curto e legível.
best = min(itertools.permutations(cities), key=tour_length)combinations_with_replacement
Precisa escolher itens que podem repetir? Use combinations_with_replacement para permitir o mesmo elemento mais de uma vez em um grupo.
Escolha a ferramenta certa
Faça duas perguntas: a ordem importa e os itens podem se repetir? Essas respostas indicam diretamente a função correta de itertools.
Verificação rápida
Você precisa enumerar todas as formas de escolher 3 de 6 itens quando a ordem não importa.
Recapitulação
Use product, permutations e combinations para enumerar de forma clara. Escolha perguntando se a ordem importa e se os itens se repetem, e fique atento ao crescimento. 🚀
Perguntas Frequentes
A aula “Enumere com itertools” é grátis?
Sim — o texto completo de “Enumere com itertools” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Coding Interview Prep, atualize para CoddyKit PRO. O curso de Coding Interview Prep inclui 4 aulas no total.
O que vou aprender em “Enumere com itertools”?
Produtos, combinações e permutações. Você pratica Coding Interview Prep com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Coding Interview Prep?
Nenhuma experiência prévia é necessária. Coding Interview Prep no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.
Quanto tempo leva a aula “Enumere com itertools”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Coding Interview Prep?
Sim. Cada aula de Coding Interview Prep inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- A Força Bruta é uma Estratégia Válida
- Enumere com itertools
- Enumeração de Subconjuntos com Máscaras de Bits
- Reduza o Espaço de Busca com Inteligência