在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
文件,并将文件对象赋值给变量f
,f.read()
表示读取文件中的所有内容,.split()
表示将读取到的内容分割成单词列表。最后使用collections.Counter
统计单词列表中各单词出现的次数。