Python-Implementierung, um das Element zu finden, das in einer Sequenz am häufigsten vorkommt

不言
Freigeben: 2018-10-20 14:45:56
nach vorne
3204 Leute haben es durchsucht
In diesem Artikel geht es um die Python-Implementierung zum Auffinden des Elements, das am häufigsten in einer Sequenz vorkommt (mit Code). Ich hoffe, dass es hilfreich ist zu dir. .

1. Anforderungen

Wir haben eine Folge von Elementen und möchten wissen, welches Element in der Folge am häufigsten vorkommt?

2. Lösung

Sammlungsmodul Chinas Counter-Klasse ist für diese Art von Problem konzipiert. Es gibt sogar eine sehr praktische Methode most_common(), die uns die Antwort verrät. Jede hashbare Sequenz von Objekten kann als Eingabe für ein Counter-Objekt bereitgestellt werden.

Beispiel: Angenommen, es gibt eine Liste mit einigen Wortspalten und wir möchten herausfinden, welche Wörter am häufigsten vorkommen:

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'])
Nach dem Login kopieren

Laufende Ergebnisse:

[('a', 5), ('b', 4), ('c', 3)]
2
3
4
5
Nach dem Login kopieren
  • Ein weiteres wenig bekanntes Merkmal von Counter-Objekten ist, dass sie leicht mit verschiedenen mathematischen Operationen kombiniert werden können.

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)
Nach dem Login kopieren

Laufergebnis:

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})
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonPython-Implementierung, um das Element zu finden, das in einer Sequenz am häufigsten vorkommt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage