Maison > développement back-end > Tutoriel Python > Comment compter efficacement les fréquences des éléments dans une liste Python non ordonnée ?

Comment compter efficacement les fréquences des éléments dans une liste Python non ordonnée ?

Linda Hamilton
Libérer: 2025-01-03 17:28:40
original
669 Les gens l'ont consulté

How to Efficiently Count Element Frequencies in an Unordered Python List?

Obtention de la fréquence des éléments dans une liste non ordonnée

Considérons une liste non ordonnée telle que a = [5, 1, 2, 2, 4, 3, 1, 2, 3, 1, 1, 5, 2]. L'objectif est de déterminer la fréquence de chaque valeur unique dans la liste. Le résultat souhaité est similaire à b = [4, 4, 2, 1, 2], indiquant que la valeur 1 apparaît quatre fois, 2 apparaît quatre fois, 3 apparaît deux fois, 4 apparaît une fois et 5 apparaît deux fois.

En Python, une solution pratique pour cette tâche consiste à utiliser la classe collections.Counter. Dans Python 2.7 et versions ultérieures, cette classe simplifie le processus de comptage des occurrences d'éléments dans une collection non ordonnée :

import collections

a = [5, 1, 2, 2, 4, 3, 1, 2, 3, 1, 1, 5, 2]
counter = collections.Counter(a)
Copier après la connexion

L'objet collections.Counter, compteur, contient le nombre de chaque valeur unique dans la liste a . Vous pouvez accéder aux décomptes en utilisant différentes méthodes :

  • counter.values() : renvoie une liste contenant les décomptes de chaque valeur unique.
  • counter.keys() : renvoie une liste contenant les valeurs uniques dans la liste.
  • counter.most_common(n) : renvoie une liste de tuples contenant les n valeurs les plus fréquentes et leurs counts.
  • dict(counter): Convertit l'objet Counter en un dictionnaire régulier avec des clés comme valeurs uniques et des valeurs comme leurs counts.

Pour obtenir les counts dans l'ordre spécifié dans à la question, vous pouvez parcourir les clés dans l'ordre trié :

[counter[x] for x in sorted(counter.keys())]
Copier après la connexion

Si vous utilisez Python 2.6 ou une version antérieure, vous pouvez télécharger une implémentation de collections.Counter à partir du lien fourni et utilisez-le dans votre code.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal