设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 19184|回复: 7
打印 上一主题 下一主题

怎么从一些数据里去重呢

[复制链接]

22

主题

6

好友

242

积分

中级会员

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2018-4-8 21:07:32 |显示全部楼层 |倒序浏览
quchong.png
我想爬取这个列表里的歌但是这个列表里有重复的歌,我该如何把再次出现的歌名去重去掉呢
回复

使用道具 举报

22

主题

6

好友

242

积分

中级会员

Rank: 3Rank: 3

沙发
发表于 2018-4-9 10:35:43 |显示全部楼层
crossin先生 发表于 2018-4-8 23:01
不是完全相同的不太方便,除非你每个歌名都去匹配一下后面所有的歌,做个对比
如果完全相同的去重,直接用  ...

我需要的是不完全相同的匹配,程序是这个样子  这些歌名是我爬下来的列表 然后我想每往txt存入一个歌名都要和txt之前存入的歌名做判断看看如果存在这个歌就不存,如果没有就把歌名存进去,而且现在的问题是
拿 ‘’告白气球‘’  举例    我先存入了歌名 ‘’告白气球‘’  然后下次一列表获取的值是 ‘’告白气球(魔术与歌曲)‘’
这个我和之前的匹配的话 我怎么能匹配到 ‘’告白气球‘’ 这个字符串呢,  用in没法实现  因为 in 匹配的 后面匹配的字符串 肯定比之前的字符串短或者相等  才能匹配到。
有没有什么办法呢
回复

使用道具 举报

22

主题

6

好友

242

积分

中级会员

Rank: 3Rank: 3

板凳
发表于 2018-4-9 19:00:59 |显示全部楼层
zhaolehua 发表于 2018-4-9 13:48
有一个方法就是在存入文件后去重,用正则表达式作为去重条件,满足条件删除重复中的一个。 ...

这些歌名。。我想不出正则怎么写啊
回复

使用道具 举报

22

主题

6

好友

242

积分

中级会员

Rank: 3Rank: 3

地板
发表于 2018-4-9 19:02:05 |显示全部楼层
crossin先生 发表于 2018-4-9 14:50
你可正反两个方向都用 in 判断一下啊

什么意思啊 没明白
回复

使用道具 举报

22

主题

6

好友

242

积分

中级会员

Rank: 3Rank: 3

5#
发表于 2018-4-10 17:31:38 |显示全部楼层
crossin先生 发表于 2018-4-9 23:19
前面的 in 后面的 and 后面的 in 前面的

好像我的数据没法用这种办法去重
回复

使用道具 举报

22

主题

6

好友

242

积分

中级会员

Rank: 3Rank: 3

6#
发表于 2018-4-11 14:54:16 |显示全部楼层
crossin先生 发表于 2018-4-11 12:02
把已有数据放in前面判断一次,再把已有数据放in后面判断一次

a = "告白气球"

这个方法适用于列表吗 比如 list[---]  然后 for (a in list)or (list in a):  这样不能用吧
回复

使用道具 举报

22

主题

6

好友

242

积分

中级会员

Rank: 3Rank: 3

7#
发表于 2018-4-11 23:08:11 |显示全部楼层
crossin先生 发表于 2018-4-11 21:46
for i in list_name:
   if a in i or i in a:
      xxx

打错了。。。    if (a in list)or (list in a):

我的意思是 list是个列表类型 然后 上面的语句能用吗  
回复

使用道具 举报

22

主题

6

好友

242

积分

中级会员

Rank: 3Rank: 3

8#
发表于 2018-4-12 21:41:08 |显示全部楼层
crossin先生 发表于 2018-4-12 11:37
我已经写出来给你了

你还是对字符串、list之类的基本操作不熟悉啊。请去看看之前的基础课程 ...

嗯嗯
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-5-8 21:50 , Processed in 0.031222 second(s), 25 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部