如何使用Python识别序列中最常出现的项?
阅读更多:Python 教程
问题
您需要识别序列中最常出现的项。
解决方案
我们可以使用计数器来跟踪序列中的项。
什么是计数器?
“计数器”是一种映射,它为每个键保持一个整数计数。更新现有键会增加其计数。这个对象用于计算可散列对象的实例或作为多重集合。
“计数器”在您执行数据分析时是最好的伙伴之一。
这个对象在Python中已经存在了相当长的时间,所以对于很多人来说,这将是一个快速的回顾。我们将从collections中导入Counter。
传统字典如果存在缺失的键,则会引发键错误。Python的字典将在未找到键时回答一个键错误。
在这种情况下,我们如何避免关键错误异常?
计数器是字典的子类,其行为非常类似于字典,但是,如果查找缺少的键而不是引发关键错误,则只返回零。
输出
输出
示例
输出
序列中最常出现的项
计数器的另一个好处是您可以使用对象列表,它将为您计数。它使我们不必建立一个循环来构建我们的计数器。
输出
split将从字符串中取出单词并将它们分成一个单词列表。它会在空格处进行分割。
“计数器”将循环遍历该列表,并计算所有单词的计数,输出结果显示了计数。
更重要的是,我还可以计算短语中最常见的单词。
most_common()方法将给出最常出现的项。
输出
示例
输出
示例
输出
注意,它返回了一个元组列表。元组的第一部分是单词,第二部分是它的计数。
Counter实例的一个很少被人知道的功能是它们可以使用各种数学运算符轻松合并。
输出
输出
最后,Counter在存储数据时非常智能。正如上面所见,它在存储时将单词分组,允许我们一起提取它们,这通常被称为多集。
我们可以使用elements一次一个地获取单词。它不记住顺序,但将所有单词放在一起组成一个短语。