本文主要是介绍【Python Cookbook】S1E10 找出序列中出现次数最多的元素,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
- 问题
- 解决方案
- 讨论
问题
如果我们有一个元素序列,我们想知道序列中出现次数最多的元素是什么?
解决方案
请使用 collections
模块中的 Counter
类!
words = ['look', 'into', 'my', 'eyes', 'look', 'into', 'my', 'eyes','the', 'eyes', 'the', 'eyes', 'the', 'eyes', 'not', 'around', 'the','eyes', "don't", 'look', 'around', 'the', 'eyes', 'look', 'into','my', 'eyes', "you're", 'under'
]from collections import Counterword_counts = Counter(words)
top_three = word_counts.most_common(3)
print(top_three)
在 Counter
类中,有函数 most_common(n)
方法,可以直接告诉我们 top(n) 个出现次数最多的元素以及其具体出现的次数:
讨论
当然,除了 top(n),Counter()
类有很多其他方法:
- 所有元素出现的次数:
print(word_counts.most_common())
- 获取指定元素出现的次数:
print(word_counts['eyes'])
- 手动增加次数:
方法一:循环写入:
more_words = ['why', 'are', 'you', 'not', 'looking', 'in', 'my', 'eyes']for word in more_words:word_counts[word] += 1
print(word_counts)
方法二:使用 update()
方法:
more_words = ['why', 'are', 'you', 'not', 'looking', 'in', 'my', 'eyes']word_counts.update(more_words)
print(word_counts)
可以说,当你面对很多需要对数据制表或者计数的问题的时候,Counter
对象是得力的工具。比起用手写字典算法,更应该采用 Collection
中 Counter
类。
这篇关于【Python Cookbook】S1E10 找出序列中出现次数最多的元素的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!