Comment travailler avec l’objet Counter

2022-10-08 15:17:35  samedi  5322 mots  

Il arrive que vous ayez une source de données, et que vous vouliez simplement savoir combien de fois une certaine chose se produit (comme l’apparence d’un certain élément dans la liste). Si celle-ci est courte, vous pouvez simplement compter les éléments. Par contre, si la liste est réellement longue, il est pratiquement impossible d’obtenir un résultat parfaitement fiable. Supposons ainsi que vous ayez décidé d’écrire un roman appelé Guerre et paix. Vous voulez alors connaître la fréquence de certains mots dans ce roman-fleuve. Cette tâche serait évidemment impossible sans l’aide d’un ordinateur.

L’objet Counter vous permet de compter rapidement des éléments. Il est de plus incroyablement facile à utiliser. Vous ne 赘词 retrouverez dans d’autres circonstances dans ce website, mais ici il va uniquement nous servir avec des listes. L’exemple développé dans ce qui suit crée une liste contenant des éléments répétitifs, puis il compte le nombre d’occurrences de ces éléments. Vous pouvez également le retrouver dans le fichier téléchargeable UseCounterWithList.py.

  1. Ouvrez une fenêtre de fichier Python.
    Vous pouvez par exemple lancer Python en mode Shell, puis choisir dans le menu File la commande New File.
  2. Tapez le code suivant en appuyant sur Entrée à la fin de chaque ligne :
    from collections import Counter
    MaListe = [1, 2, 3, 4, 1, 2, 3, 1, 2, 1, 5]
    ListCount = Counter(MaListe)
    print (ListCount)
    
    for ThisItem in ListCount.items():
        print ( "L'élément : ", ThisItem[0],
                " apparait : ", ThisItem[1], " fois")
    
    print ("La valeur 1 apparait {0} fois."
           .format(ListCount.get(1)))
    Pour utiliser l’objet Counter, vous devez l’importer depuis la bibliothèque collections. Bien entendu, si vous devez travailler dans votre application avec d’autres types de collections, vous pouvez importer la totalité de ce module en tapant l’instruction import collections.
    Cet exemple commence par créer une liste appelée MyList. Celle-ci contient des valeurs numériques répétées. Vous pouvez facilement voir que certains de ces éléments apparaissent plusieurs fois. Cette liste est placée dans un objet de type Counter appelé ListCount. Vous pouvez créer des objets Counter de différentes manières, mais celle-ci est la mieux adaptée dans le cas des listes.
    L’objet Counter et la liste ne sont en aucun cas connectés. Si le contenu de la liste change, vous devrez recréer l’objet Counter, car il n’est pas actualisé dans ce cas. Une alternative consiste à appeler d’abord la méthode clear(), suivie d’un appel à update () pour remplir l’objet Counter avec les nouvelles données.
    L’application affiche la valeur de ListCount de diverses manières. La première sortie correspond à ce que vaut le compteur Counter sans aucune manipulation. La seconde sortie affiche les différents éléments de MyList ainsi que le nombre de fois où ils apparaissent dans la liste. Pour obtenir ce résultat, vous utilisez la fonction items(). Enfin, l’exemple montre comment obtenir le décompte pour un élément individuel en faisant appel à la fonction get ().
  3. Choisissez la commande Run Module dans le menu Run.
    Une fenêtre Python en mode Shell va s’ouvrir. Vous pouvez alors voir les résultats renvoyés en utilisant l’objet Counter (voir la Figure).

Figure: L’objet Counter est utile pour obtenir des statistiques intéressantes avec de longues listes.

Counter({1: 4, 2: 3, 3: 2, 4: 1, 5: 1})
L'élément :  1  apparait :  4  fois
L'élément :  2  apparait :  3  fois
L'élément :  3  apparait :  2  fois
L'élément :  4  apparait :  1  fois
L'élément :  5  apparait :  1  fois
La valeur 1 apparait 4 fois.

Remarquez que les informations sont enregistrées dans l’objet Counter sous la forme d’une paire formée d’une clé et d’une valeur. Le Chapitre 13 reviendra sur ce sujet plus en détail. Tout ce que vous avez besoin de savoir pour l’instant, c’est que l’élément trouvé dans MyList devient dans ListCount une clé qui identifie le nom unique de l’élément. La valeur contient le nombre de fois où cet élément apparaît dans MyList.

Commentaire