Python中使用Counter进行字典创建以及key数量统计的方法

当我们处理一些文本数据时,常常需要对其进行词频统计。Python中的Counter类提供了快速、便捷地进行词频统计和字典创建的方法。

创建Counter对象

Counter类可以接受任意的迭代对象作为输入,返回一个以元素为键、出现次数为值的字典。我们可以通过以下方式创建一个Counter对象:

from collections import Counter

text = "hello, world. this is an example text!"
word_count = Counter(text.split())
print(word_count)

输出结果:

Counter({'hello,': 1, 'world.': 1, 'this': 1, 'is': 1, 'an': 1, 'example': 1, 'text!': 1})

上面的例子中,我们利用字符串split()方法将文本分割为单词列表,然后将其传递给Counter类来创建一个Counter对象,对象中每个键值对都记录着单词出现的次数。

统计key数量

我们可以通过Counter对象的keys()方法获取到所有的key,然后利用len()函数获取key的数量,举例如下:

from collections import Counter

text = "hello, world. this is an example text!"
word_count = Counter(text.split())
keys_count = len(word_count.keys())
print('keys count:', keys_count)

输出结果:

keys count: 7

上面的例子中,我们利用Counter对象的keys()方法获取到所有的key,然后利用len()函数获取key的数量。

示例

下面我们举两个实际应用的例子。

示例1:统计电影中的单词频率

这个示例通过读取电影剧本,统计剧本中单词的出现次数。

from collections import Counter

with open('movie_script.txt', 'r') as f:
    text = f.read()

word_count = Counter(text.split())

for word, count in word_count.most_common(10):
    print(word, count)

输出结果:

the 955
i 731
to 639
you 625
a 570
and 525
of 517
in 363
that 354
is 324

上面的例子中,我们通过open()函数读取到电影剧本,然后利用Counter对象统计文本中的单词次数,最后使用most_common()方法输出出现频率最高的10个单词。

示例2:统计网站访问日志中IP出现的次数

这个示例通过读取网站的访问日志,统计IP地址的出现次数。

from collections import Counter

with open('access.log', 'r') as f:
    lines = f.readlines()

ips = []
for line in lines:
    ip = line.split()[0]
    ips.append(ip)

ip_count = Counter(ips)

for ip, count in ip_count.most_common(10):
    print(ip, count)

输出结果:

10.0.0.23 8670
10.0.0.56 8491
10.0.0.49 7515
10.0.0.79 6607
10.0.0.106 6198
10.0.0.235 6174
10.0.0.180 5849
10.0.0.198 5273
10.0.0.85 5168
10.0.0.117 5029

上面的例子中,我们通过open()函数读取到网站的访问日志,然后按行读取每条访问记录,从中获取到IP地址并记录到列表中。最后利用Counter对象统计IP地址出现的次数,使用most_common()方法输出访问量最大的10个IP地址。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python中使用Counter进行字典创建以及key数量统计的方法 - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • 3分钟学会一个Python小技巧

    下面我将详细讲解“3分钟学会一个Python小技巧”的完整攻略,攻略如下: 1. 确认目标 首先,我们需要明确自己的学习目标。Python是一门广泛应用于各行各业的语言,如何选择适合自己的技巧,需要先明确自己的应用场景。 例如,如果我们需要在Python中处理大型数据集,那么我们可以学习使用numpy库进行高效的数据处理。 2. 寻找资料 在确定自己的学习目…

    python 2023年6月2日
    00
  • 深入解析python返回函数和匿名函数

    让我来为你详细讲解“深入解析python返回函数和匿名函数”的完整攻略。 深入解析Python返回函数和匿名函数 Python中的函数在很多情况下都可以作为值进行使用,包括返回函数和匿名函数的使用。下面我们就来详细讲解一下。 返回函数 在Python中,函数也可以作为返回值进行使用。一个函数可以返回另一个函数,例如: def outer_func(): de…

    python 2023年6月5日
    00
  • Python中函数的参数类型详解

    Python中函数的参数类型详解 Python中的函数参数可以分为四种类型:位置参数、默认参数、可变参数和关键字参数。本文将一一介绍这四种参数类型,并且给出相应的使用场景和示例。 1. 位置参数 位置参数是最常见的参数类型,也是 Python 默认的参数类型。在函数中,位置参数的顺序和数量必须声明清楚。调用函数时,每个位置参数的值将会依次传递给函数。 下面是…

    python 2023年6月5日
    00
  • python网络编程学习笔记(六):Web客户端访问

    本攻略将介绍如何使用Python编写Web客户端程序,以访问Web服务器并获取响应。我们将使用Python内置的urllib库和第三方的requests库来实现这个过程。我们将提供两个示例,分别用于使用urllib和requests库访问Web服务器。 使用urllib库访问Web服务器 以下是一个示例代码,用于使用urllib库访问Web服务器: impo…

    python 2023年5月15日
    00
  • Python自动创建Excel并获取内容

    下面我将为您详细讲解Python自动创建Excel并获取内容的完整实例教程。 1.使用Python库xlwt创建Excel文件 通过Python库xlwt,可以自动创建Excel表格并对其进行编辑和填充。以下是创建一个包含3行3列的Excel表格的Python代码示例: # 引入xlwt库 import xlwt # 创建一个workbook对象,相当于创建…

    python 2023年5月13日
    00
  • 基于Python实现面向对象版学生管理系统

    基于Python实现面向对象版学生管理系统 简介 本文将介绍如何用 Python 实现一个简单的学生管理系统,通过该系统,可以实现学生信息的增、删、改、查等基本功能。 本系统采用面向对象的编程方式,实现了可重用、易扩展的目的。 设计 类的设计 Student 类:表示学生,包含学生的基本信息,如姓名、学号、分数等 属性: name:学生姓名 id:学生编号 …

    python 2023年5月30日
    00
  • python 实现一个简单的线性回归案例

    我将给你详细讲解“python 实现一个简单的线性回归案例”的完整攻略,其中包括以下内容: 线性回归的概念和原理 实现步骤 示例说明 线性回归的概念和原理 线性回归是一种广泛应用于统计学和机器学习中的基本技术。其主要思想是在输入变量与输出变量之间建立一个线性关系模型,通过最小化目标函数,以求出最佳的回归系数从而建立起线性模型。 线性回归算法的目标是最小化误差…

    python 2023年5月19日
    00
  • 完美解决pycharm 不显示代码提示问题

    这里是针对“完美解决PyCharm不显示代码提示问题”的完整攻略。 1. 前置条件 在开始之前,我们需要确保以下几个条件已经满足: 你已经安装了PyCharm IDE; 你的项目中已经添加了需要使用的Python解释器; 你的项目工程已经成功打开并可以运行。 如果你还没有完成以上步骤,请先完成这些操作。 2.检查设置 首先,我们需要检查一下PyCharm I…

    python 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部