Maison > développement back-end > Tutoriel Python > Comprendre les collections de Python.Type de compteur

Comprendre les collections de Python.Type de compteur

coldplay.xixi
Libérer: 2020-11-23 17:36:29
avant
3423 Les gens l'ont consulté

La colonne

tutoriel vidéo Python présente le type collections.Counter de Python. Le type

Comprendre les collections de Python.Type de compteur

collections.Counter peut être utilisé pour compter les objets hachables, ou utilisé comme multiset - un multiset signifie que les éléments de l'ensemble peuvent apparaître plusieurs fois 1. Le type

collections.Counter est similaire à bags ou multisets2 dans d'autres langages de programmation.

(1) Utilisation de base

counter = collections.Counter(['生物', '印记', '考古学家', '生物', '枣', '印记'])
logging.info('counter -> %s', counter)
counter.update(['化石', '果实', '枣', '生物'])
logging.info('counter -> %s', counter)
most = counter.most_common(2)
logging.info('most -> %s', most)
Copier après la connexion

Résultats d'exécution :

INFO - counter -> Counter({'生物': 2, '印记': 2, '考古学家': 1, '枣': 1})
INFO - counter -> Counter({'生物': 3, '印记': 2, '枣': 2, '考古学家': 1, '化石': 1, '果实': 1})
INFO - most -> [('生物', 3), ('印记', 2)]
Copier après la connexion

Dans l'exemple de programme, utilisez d'abord collections.Counter() pour initialiser le compteur object, this Le nombre actuel d'occurrences de mots a été calculé dans l'objet compteur ; collections.Counter()Le paramètre d'entrée est un objet itérable, comme la liste ici. Utilisez ensuite la méthode update() pour transmettre la nouvelle liste de mots. À ce moment, l'objet compteur mettra à jour le compteur et effectuera des calculs cumulatifs. Enfin, utilisez la méthode most_common() de l'objet compteur pour imprimer la liste des mots. les 2 premiers mots.

(2) Opérations d'ensemble

Le type collections.Counter prend également en charge les opérations d'ensemble.

a = collections.Counter({'老虎': 3, '山羊': 1})
b = collections.Counter({'老虎': 1, '山羊': 3})
logging.info('a -> %s', a)
logging.info('b -> %s', b)
logging.info('a+b -> %s', a + b)
logging.info('a-b -> %s', a - b)
logging.info('a&b -> %s', a & b)
logging.info('a|b -> %s', a | b)
Copier après la connexion

Résultat de l'exécution :

INFO - a -> Counter({'老虎': 3, '兔子': 2, '山羊': 1})
INFO - b -> Counter({'山羊': 3, '老虎': 1})
INFO - a+b -> Counter({'老虎': 4, '山羊': 4, '兔子': 2})
INFO - a-b -> Counter({'老虎': 2, '兔子': 2})
INFO - a&b -> Counter({'老虎': 1, '山羊': 1})
INFO - a|b -> Counter({'老虎': 3, '山羊': 3, '兔子': 2})
Copier après la connexion
  • A et b dans l'exemple sont tous deux des objets de type Counter. Cela démontre également que l'objet Counter peut être initialisé à l'aide de paires clé-valeur

  • a+b représente l'opération d'union, y compris tous les éléments ; 🎜>a-b représente l'opération de différence ;

  • a&b représente l'opération d'intersection

  • a|b est spécial, incluant d'abord toutes les clés Entrez ; , puis comparez la valeur maximale de la clé correspondante dans les deux objets comme valeur du nouvel objet. Par exemple, si l'objet a contient « tigre » : 3, l'objet b contient « tigre » : 1, alors l'objet final obtenu est « tigre » : 3.

  • (3) Comptage de valeurs positives et négatives

  • Les compteurs du type Compteur prennent également en charge les valeurs négatives.
c = collections.Counter(x=1, y=-1)
logging.info('+c -> %s', +c)
logging.info('-c -> %s', -c)
Copier après la connexion

Résultat de l'exécution :

INFO - +c -> Counter({'x': 1})
INFO - -c -> Counter({'y': 1})
Copier après la connexion

En utilisant simplement

comme préfixe d'un objet de type Compteur, un filtrage des comptes positifs et négatifs peut être implémenté. Cette conception de Python est très élégante.

+/-Recommandations d'apprentissage gratuites associées :

Tutoriel vidéo Python

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!

Étiquettes associées:
source:juejin.im
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal