字母出现频率统计用python实现
def processLine(line, CharacterCounts):
for character in line:
if ord(character) in range(97, 123):
CharacterCounts[character] += 1
#创建字母字典
def createCharacterCounts(CharacterCounts):
for i in range(97, 123):
CharacterCounts[chr(i)] = 0
def main():
#用户输入一个文件名
# filename = input("enter a filename:").strip()
filename = "123.txt"
infile = open(filename, "r")
#建立用于计算词频的空字典
CharacterCounts = {}
#初始化字典键值
createCharacterCounts(CharacterCounts)
for line in infile:
processLine(line.lower(), CharacterCounts)
#从字典中获取数据对
pairs = list(CharacterCounts.items())
#列表中的数据对交换位置,数据对排序
items = [[x,y] for (y,x) in pairs]
items.sort(reverse=True)
#输出count个数词频结果
for i in range(len(items)):
print(items[i][1]+" "+str(items[i][0]))
infile.close()
#调用main()函数
if __name__ == "__main__":
main()26个字母的范围通过ord函数,ASCII码值圈定
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
