re模块进行单词统计

  

复制代码
from collections import defaultdict
import re

d=defaultdict(lambda :0)

with open(r'e:/bb.txt',mode='rt+',encoding='utf8') as f:
    for line in f:
        for sub in re.split('[^\w-]+',line):
            if len(sub)>0:
                d[sub]+=1
b=0
for p in sorted(d,key=lambda x:d[x],reverse=True):
    if b<10:
        print(p,d[p])
        b+=1
b=0
for p in sorted(d.items(),key=lambda x:x[1],reverse=True):
    if b<10:
        print(p[0],p[1])
        b+=1
复制代码

 

复制代码
import re
from collections import defaultdict

d=defaultdict(lambda :0)
regex=re.compile('[^\w-]+',flags=re.S|re.I)

with open('e:/bb.txt',mode='rt+',encoding='utf8') as f:
    for line in f:
        for sub in regex.split(line):
            if len(sub)>0:
                d[sub.lower()]+=1
print(d)

v=0
for p in sorted(d,key=lambda u:d[u],reverse=True):
    if v<10:
        print(p,d[p])
        v+=1
        
def wordcount(path:str='.'):
    d=defaultdict(lambda :0)
    with open(path,mode='rt+',encoding='utf8') as f:
        for line in f:
            for sub in regex.split(line):
                if len(sub)>0:
                    d[sub.upper()]+=1
    return d

v=0
for p in sorted(wordcount('e:/bb.txt').items(),key=lambda m:m[1],reverse=True):
    if v<10:
        print(p)
        v+=1
复制代码

 

posted @   ascertain  阅读(195)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示