鱼C论坛

 找回密码
 立即注册
查看: 2266|回复: 4

[已解决]文本字频统计和删除

[复制链接]
发表于 2021-1-17 18:24:24 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
新手求助,请各位看看这段代码哪里出了问题,运行的时候一直把密后面的一个字也删掉了,字频统计也输不出来


要求:从文件data.txt中读入信息,将其中包含的“密”字(可能出现0次、1次或多次)删除,最后原样输出剩余的文本内容,同时统计出剩余文本中每个汉字出现的次数,并输出。

  1. f=open('data.txt',encoding='utf-8')
  2. text=f.read()
  3. f.close()
  4. L=list(text)
  5. for i in L:
  6.     if i=='密':
  7.         L.remove(i)
  8.     else:
  9.         print('%s'%i)
  10. dic={}
  11. for j in L:
  12.     if j not in dic:
  13.         dic[j]=1
  14.     else:
  15.         dic[j]+=1
  16. swd=sort(list(dic.items()),key=lambda lst:lst[1],reverser=True)
  17. for kword,times in swd:
  18.     print(kword,times)
复制代码
最佳答案
2021-1-17 18:28:44
改成这样试试?
  1. f=open('data.txt',encoding='utf-8')
  2. text=f.read()
  3. f.close()
  4. L=list(text)
  5. for i in L[:]:
  6.     if i=='密':
  7.         L.remove(i)
  8.     else:
  9.         print('%s'%i)
  10. dic={}
  11. for j in L:
  12.     if j not in dic:
  13.         dic[j]=1
  14.     else:
  15.         dic[j]+=1
  16. swd=sorted(list(dic.items()),key=lambda lst:lst[1],reverse=True)
  17. for kword,times in swd:
  18.     print(kword,times)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-1-17 18:28:44 | 显示全部楼层    本楼为最佳答案   
改成这样试试?
  1. f=open('data.txt',encoding='utf-8')
  2. text=f.read()
  3. f.close()
  4. L=list(text)
  5. for i in L[:]:
  6.     if i=='密':
  7.         L.remove(i)
  8.     else:
  9.         print('%s'%i)
  10. dic={}
  11. for j in L:
  12.     if j not in dic:
  13.         dic[j]=1
  14.     else:
  15.         dic[j]+=1
  16. swd=sorted(list(dic.items()),key=lambda lst:lst[1],reverse=True)
  17. for kword,times in swd:
  18.     print(kword,times)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-17 18:45:07 | 显示全部楼层
本帖最后由 AresFC 于 2021-1-17 18:48 编辑


成了!
是改了第5行和sorted两处吗
为什么要这样改呀
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-17 19:09:44 | 显示全部楼层
AresFC 发表于 2021-1-17 18:45
成了!
是改了第5行和sorted两处吗
为什么要这样改呀

1,如果不改成切片的话,遍历就会出问题
2,这个是基础8,sort是列表的方法,sorted才是BIF,而且你的reverse拼错了,加了个r
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-17 19:45:52 | 显示全部楼层
qiuyouzhi 发表于 2021-1-17 19:09
1,如果不改成切片的话,遍历就会出问题
2,这个是基础8,sort是列表的方法,sorted才是BIF,而且你的re ...

好的,谢谢
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-28 21:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表