Multiensemble

Définition, exemples et bonnes pratiques

À retenir

  • Autorise les doublons contrairement à un ensemble classique.
  • Ne respecte aucun ordre particulier (contrairement à une liste).
  • Sert principalement à stocker des éléments et leur nombre d'apparitions.

Un multiensemble est une structure de données qui regroupe des éléments sans ordre précis, tout en permettant à un même élément d'apparaître plusieurs fois. C'est l'équivalent informatique d'un sac de courses : vous pouvez y mettre trois pommes identiques, et peu importe laquelle est au-dessus de l'autre, ce qui compte c'est d'avoir trois exemplaires de l'objet "pomme".

Étymologie

Composé du préfixe latin multi- (plusieurs) et du mot ensemble. En informatique, il traduit souvent le terme anglais bag (sac), utilisé pour souligner l'absence d'organisation hiérarchique ou séquentielle des éléments contenus.

Exemples d'usage

  • Analyse de texte : Compter le nombre d'apparitions de chaque mot dans un livre (le mot "le" apparaîtra 500 fois).
  • Inventaire de jeu vidéo : Stocker 10 "potions de soin" identiques dans le sac d'un personnage sans avoir besoin de les trier.
  • Gestion de stock : Une base de données listant les pièces détachées disponibles dans un entrepôt.

Cas d'usage

On utilise les multiensembles principalement en statistiques et en analyse de données lorsqu'on a besoin de connaître la fréquence (le nombre d'occurrences) de chaque élément. Ils interviennent aussi dans certains algorithmes de recherche où l'on veut savoir si deux groupes contiennent les mêmes éléments en mêmes quantités, sans se soucier de leur disposition.

Bonnes pratiques

Si l'ordre des éléments est crucial pour votre programme, utilisez plutôt une liste ou un tableau. Si vous voulez garantir qu'un élément n'apparaisse qu'une seule fois au maximum, préférez un ensemble (Set). Le multiensemble est idéal uniquement quand vous devez suivre précisément le compte de chaque doublon.

Synonymes

sac bag ensemble avec répétition

Antonymes

ensemble (set) liste ordonnée

Conseil

Si vous débutez, retenez que le multiensemble est l'outil parfait pour faire des statistiques rapides. Si vous avez besoin de compter combien de fois chaque utilisateur s'est connecté, jetez tous les identifiants dans un 'sac' (multiensemble) et il vous donnera les totaux instantanément.

Questions fréquentes

Quelle est la différence avec une liste ?

Dans une liste, l'ordre compte (le premier élément est différent du deuxième). Dans un multiensemble, seule la quantité compte.

Existe-t-il une structure multiensemble en Python ?

Oui, la classe 'Counter' du module 'collections' est l'implémentation typique du multiensemble en Python.

Est-ce performant ?

Oui, car il est souvent implémenté sous forme de dictionnaire (clé = élément, valeur = nombre), ce qui permet de savoir très vite combien de fois un objet est présent.