0Pricing
Competitive Programming Academy · Leçon

Énumérer avec itertools

Produits, combinaisons et permutations

Énumérer avec itertools est une leçon Competitive Programming Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Competitive Programming Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Competitive Programming Academy comprend 4 leçons au total.

Laissez itertools gérer les boucles

Le module itertools de Python génère pour vous les combinations et les permutations, ce qui réduit la quantité de code de boucle et le nombre d'erreurs. 🙂

Importez-le d'abord

Tout se trouve dans un seul module : commencez donc par import itertools. Vous pourrez ensuite appeler directement product, permutations et combinations.

import itertools

product pour les boucles imbriquées

Utilisez product pour remplacer des boucles profondément imbriquées qui parcourent les mêmes choix. Cette fonction produit chaque tuple de sélections parmi les plages données.

for combo in itertools.product(range(3), repeat=2):
    print(combo)

permutations pour les ordres

Lorsque l'ordre compte, permutations énumère chaque arrangement des éléments. C'est parfait pour une recherche par force brute de petite taille, de type problème du voyageur de commerce.

for p in itertools.permutations([1, 2, 3]):
    print(p)

combinations pour choisir

Lorsque l'ordre ne compte pas, combinations sélectionne chaque groupe de taille r. C'est idéal pour choisir un sous-ensemble d'éléments à vérifier.

for c in itertools.combinations([1, 2, 3, 4], 2):
    print(c)

Permutations et combinations

La différence essentielle est l'ordre : permutations considère (1,2) et (2,1) comme distincts, tandis que combinations les considère comme une seule sélection.

Attention à la croissance

Le nombre de permutations augmente comme n!, ce qui explose rapidement. Même n égal à 11 dépasse déjà les quarante millions d'arrangements, alors gardez n petit.

Elles sont paresseuses

Ces fonctions sont des générateurs : elles produisent un élément à la fois sans construire une liste gigantesque, ce qui maintient une faible consommation de mémoire pendant la boucle.

Combinez avec une vérification

Générez les candidats, puis ne gardez que ceux qui passent votre vérification. Ce schéma transforme une recherche difficile en une courte boucle lisible.

best = min(itertools.permutations(cities), key=tour_length)

combinations_with_replacement

Vous devez choisir des éléments qui peuvent se répéter ? Utilisez combinations_with_replacement pour autoriser plusieurs occurrences du même élément dans un groupe.

Choisissez le bon outil

Posez-vous deux questions : l'ordre compte-t-il et les éléments peuvent-ils se répéter ? Les réponses vous orientent directement vers la bonne fonction itertools.

Vérification rapide

Vous devez énumérer toutes les façons de choisir 3 éléments parmi 6, sans tenir compte de l'ordre.

Récapitulatif

Utilisez product, permutations et combinations pour énumérer proprement. Choisissez l'outil en vous demandant si l'ordre compte et si les éléments se répètent, et surveillez la croissance. 🚀

Questions Fréquemment Posées

La leçon « Énumérer avec itertools » est-elle gratuite ?

Oui — le texte complet de « Énumérer avec itertools » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Competitive Programming Academy, passe à CoddyKit PRO. Le cours Competitive Programming Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Énumérer avec itertools » ?

Produits, combinaisons et permutations Tu pratiques Competitive Programming Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Competitive Programming Academy ?

Aucune expérience préalable n'est requise. Competitive Programming Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Énumérer avec itertools » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Competitive Programming Academy ?

Oui. Chaque leçon Competitive Programming Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. La force brute est une stratégie valable
  2. Énumérer avec itertools
  3. Énumération des sous-ensembles par masque binaire
  4. Réduire intelligemment l’espace de recherche
← Retour à Competitive Programming Academy