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

Comprendre les collections de Python.Type de compteur

coldplay.xixi
coldplay.xixiavant
2020-11-23 17:36:293359parcourir

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)

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)]

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)

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})
  • 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)

Résultat de l'exécution :

INFO - +c -> Counter({'x': 1})
INFO - -c -> Counter({'y': 1})

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer