python集合的应用小技巧

假设我们有两个日志文件a.txt和b.txt,a和b中有些数据又是重复的,我们需要分析a中的内容和b中的内容然后要最终提取出来b中有的但是a中没有的,而且不能有重复的。按照传统的思路我们会写一个循环去一条一条判断然后再记录下结果,但是这样很慢,尤其是数据量很大的时候,这时候我们就可以利用python的集合来快速解决了,哪怕是几百万条记录,也可以很快搞定

演示如下(这里a和b里有许多重复的值)
[root@localhost ~]# cat a.txt
123
123
123
456
456
789
789
[root@localhost ~]# cat b.txt
123
456
456
789
789
aaa
bbb
ccc
[root@localhost ~]# python
>>> f1 = open('a.txt')
>>> f2 = open('b.txt')

>>> f3 = open('c.txt','w')
>>> s1 = set(f1)
>>> s2 = set(f2)
>>> f3.writelines(s2 - s1)
>>> f1.close()
>>> f2.close()
>>> f3.close()

[root@localhost ~]# cat c.txt
ccc
aaa
bbb
这就得到了我们想要的结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值