如何在Python中创建频率表

  • Post category:Python

在Python中创建频率表可以使用Python内置的collections模块中的Counter类来实现。下面是具体的步骤:

Step 1:导入collections模块

首先需要导入collections模块,使用以下代码:

import collections

Step 2:使用collections.Counter类创建频率表

接着使用collections.Counter类创建频率表,如下所示:

lst = ['apple', 'banana', 'orange', 'apple', 'orange', 'orange']
freq = collections.Counter(lst)
print(freq)

运行结果如下:

Counter({'orange': 3, 'apple': 2, 'banana': 1})

其中lst为需要统计频率的列表,freq为统计结果存储的对象,输出结果为一个字典,其中键为列表中出现的元素,值为该元素出现的次数。

Step 3:使用update方法更新频率表

如果需要对已经创建的频率表进行更新,可以使用update方法,例如:

lst2 = ['apple', 'banana', 'apple', 'pear']
freq.update(lst2)
print(freq)

运行结果如下:

Counter({'apple': 3, 'orange': 3, 'banana': 2, 'pear': 1})

其中lst2为需要统计频率的列表,freq.update(lst2)表示将freq对象中的频率表与lst2列表中的元素统计到一起,输出结果为更新后的频率表。

示例说明

示例1:统计字符串中各字符出现的次数

str = 'hello, world!'
freq = collections.Counter(str)
print(freq)

输出结果为:

Counter({'l': 3, 'o': 2, ' ': 2, 'h': 1, 'e': 1, ',': 1, 'w': 1, 'r': 1, 'd': 1, '!': 1})

示例2:统计文本文件中各单词出现的次数

with open('test.txt', 'r') as f:
    words = f.read().split()
freq = collections.Counter(words)
print(freq)

假设test.txt文件内容如下:

The quick brown fox jumps over the lazy dog.

输出结果为:

Counter({'The': 1, 'quick': 1, 'brown': 1, 'fox': 1, 'jumps': 1, 'over': 1, 'the': 1, 'lazy': 1, 'dog.': 1})

其中with open('test.txt', 'r') as f:表示打开test.txt文件,并将文件对象赋值给变量ff.read()表示读取文件中的所有内容,.split()表示将读取到的内容分割成单词列表。最后使用collections.Counter统计单词列表中各单词出现的次数。