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
这就得到了我们想要的结果。

猜你喜欢

转载自blog.csdn.net/weixin_42182501/article/details/89036375