鱼C论坛

 找回密码
 立即注册
查看: 566|回复: 9

[已解决]文件内容 去重 希望解答 谢谢

[复制链接]
发表于 2018-10-27 09:12:31 | 显示全部楼层 |阅读模式

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

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

x
我的文件是这样的不用分词,是去掉回车符的文件,词和词以一个空格在分割,那么怎么把文件中的词去掉重复项并显示有几个为重复的词数值 打印到一个新文件呢。拜托 1111111.png
最佳答案
2018-10-27 12:54:23
  1. import re
  2. with open('ttt.txt') as f:
  3.     text = f.read()
  4.     textList = re.split(r'\s+',text.replace('\n',''))
  5.     d = dict.fromkeys(set(textList), 0)
  6.     rs = []
  7.     for x in textList:
  8.         d[x] += 1
  9.     for k, v in d.items():
  10.         if v > 1:
  11.             print(k, v)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-10-27 09:58:40 | 显示全部楼层
可以试一试桶排序的思想,如果是python的话桶可以是一个字典,桶中每个元素形式为 词名:单词出现次数,桶名为Words
遍历文件中所有单词,对每一单词,进行如下操作:
1.查看桶中是否有以该单词为键的索引
2.如果没有添加该键,并将其值初始化为1
3.如果有该键值加一
如对下一个词apple,没有出现过,Words['apple'] = 1
又如果fishc已经出现,则 Words['fishc'] += 1

最后遍历桶中每一个键,打印出键值,这样每个单词就只出现一次啦
而且键的值就是单词出现的次数
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-27 10:02:15 | 显示全部楼层
核心代码
  1. for each_words in file_words:
  2.         if(each_words in Words):
  3.                 Words[each_words] += 1
  4.         else:
  5.                 Words[each_words] = 1
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-27 12:54:23 | 显示全部楼层    本楼为最佳答案   
  1. import re
  2. with open('ttt.txt') as f:
  3.     text = f.read()
  4.     textList = re.split(r'\s+',text.replace('\n',''))
  5.     d = dict.fromkeys(set(textList), 0)
  6.     rs = []
  7.     for x in textList:
  8.         d[x] += 1
  9.     for k, v in d.items():
  10.         if v > 1:
  11.             print(k, v)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-29 17:17:57 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-29 17:18:40 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-29 17:21:13 | 显示全部楼层
爱学习的懒懒君 发表于 2018-10-27 09:58
可以试一试桶排序的思想,如果是python的话桶可以是一个字典,桶中每个元素形式为 词名:单词出现次数,桶 ...

谢谢你了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-29 17:34:20 | 显示全部楼层

您好,我的源文件稍微改动了一下,每个文字一个行了,那么您回复的这段代码怎么修改呢?现在是不报错但也没有内容出来,谢谢您,麻烦啦 6666.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-29 17:35:28 | 显示全部楼层
Amgalang 发表于 2018-10-29 17:34
您好,我的源文件稍微改动了一下,每个文字一个行了,那么您回复的这段代码怎么修改呢?现在是不报错但也 ...

您好,我的源文件稍微改动了一下,每个文字一个行了,那么您回复的这段代码怎么修改呢?现在是不报错但也没有内容出来,谢谢您,麻烦啦 6666.png 555.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-10-29 18:49:16 | 显示全部楼层

知道了,谢谢哒 问题已解决
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 16:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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