您好,登錄后才能下訂單哦!
Python中如何找出序列中出現次數最多的元素,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
前言:有一個元素序列,想知道在序列中出現次數最多的元素是什么?
collections模塊中國的Counter類正是為此類問題而設計的。它甚至有一個非常方便的most_common()方法可以告訴我們答案。可以給Counter對象提供任何可哈希的對象序列作為輸入。
實例:假設一個列表,其中有一些列的單詞,我們想找出哪些單詞出現的最為頻繁:
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'])
運行結果:
[('a', 5), ('b', 4), ('c', 3)] 2 3 4 5
Counter對象另一個不為人知的特性,那就是他們可以輕松地同各種數學運算操作結合起來使用。
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)
運行結果:
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})
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。