Maison > développement back-end > Tutoriel Python > Implémentation Python pour trouver l'élément qui apparaît le plus souvent dans une séquence

Implémentation Python pour trouver l'élément qui apparaît le plus souvent dans une séquence

不言
Libérer: 2018-10-20 14:45:56
avant
3237 Les gens l'ont consulté
Ce que cet article vous apporte concerne l'implémentation Python de la recherche de l'élément qui apparaît le plus souvent dans une séquence (avec du code). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. pour vous. .

1. Exigences

Nous avons une séquence d'éléments et voulons savoir quel élément apparaît le plus fréquemment dans la séquence ?

2. Solution

module de collections La classe Counter de Chine est conçue pour ce type de problème. Il dispose même d’une méthode most_common() très pratique qui nous indique la réponse. Toute séquence d'objets hachable peut être fournie en entrée d'un objet Counter.

Exemple : Supposons qu'il existe une liste avec quelques colonnes de mots et que nous souhaitons savoir quels mots apparaissent le plus fréquemment :

from collections import Counter
words=[
'a','b','c','d','e','f',
'a','b','c','d','e','f',
'a','b','c',
'a','b',
'a'
]
#利用Counter统计每个元素出现的个数
words_counts=Counter(words)
#出现次数最多的3个元素
top_three=words_counts.most_common(3)
#返回元素和出现次数
print(top_three)

#Counter底层是一个字典,可以在元素和他们出现的次数之间做映射,例如:
#输出元素【f】出现的次数
print(words_counts['f'])

#如果想手动增加计数个数,只需要简单的自增
words_counts['f']+=1
print(words_counts['f'])

#如果想手动增加计数个数,还可以使用update()方法:
#只针对元素【f】增加一次计数
words_counts.update('f')
print(words_counts['f'])

#为所有计数增加一次
morewords=[
'a','b','c','d','e','f'
]
words_counts.update(morewords)
print(words_counts['f'])
Copier après la connexion

Résultats en cours :

[('a', 5), ('b', 4), ('c', 3)]
2
3
4
5
Copier après la connexion
  • Une autre caractéristique peu connue des objets Counter est qu'ils peuvent être facilement combinés avec diverses opérations mathématiques.

from collections import Counter
words1=[
'a','b','c','d','e','f',
'a','b','c','d','e','f',
'a','b','c',
'a','b',
'a'
]

words2=[
'a','b','c','d','e','f',
'a','b','c',
'a','b',
'a'
]
one=Counter(words1)
two=Counter(words2)
print(one)
print(two)
three=one+two
print(three)
four=one-two
print(four)
Copier après la connexion

Résultat de l'exécution :

Counter({'a': 5, 'b': 4, 'c': 3, 'd': 2, 'e': 2, 'f': 2})
Counter({'a': 4, 'b': 3, 'c': 2, 'd': 1, 'e': 1, 'f': 1})
Counter({'a': 9, 'b': 7, 'c': 5, 'd': 3, 'e': 3, 'f': 3})
Counter({'a': 1, 'b': 1, 'c': 1, 'd': 1, 'e': 1, 'f': 1})
Copier après la connexion

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:segmentfault.com
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