工作中經常需要求二份數據的交集(即二份數據中的相同部分),如果是幾千幾萬條數據,我們用EXCEL可以搞定(在EXCEL中可以使用VLOOKUP函數對二列數據進行對比,然後篩選出相同的內容),用時也不會太長。
但如果數據有幾十萬條,用EXCEL處理就相當慢了(如果你有耐心,當然可以這樣做),如果數據是幾百萬條,EXCEL是無法處理的,你可能會想到,我用UE也可以處理啊(當然可以,但需要一些小技巧,而且你得有UE這個軟件,這個軟件並不便宜)。
好了,用python,免費,快速處理百萬甚至千萬數據取交集,只在眨眼之間(有點誇張,但時間絕對夠短),第一篇頭條文章,源代碼免費分享給大家,喜歡的加關注,後續還有更精彩的分享.
下面的代碼完美實現二個文本文檔A.TXT與B.TXT取交集並輸出C.TXT,輸出的C.TXT包含二個文本文檔中的重複數據。enjoy it!
# -*- coding:UTF-8
# 作者:aovs 2018-03-07
# Python 版本:3.6.4
# 本代碼實現將a.txt、b.txt二個文本文件取交集後輸出c.txt文檔,輸出的文檔數據無序。
# 將a.txt創建為列表
print ('本程序實現將a.txt、b.txt二個文本文件取交集後輸出c.txt文檔,輸出的文檔數據無序。')
print ('請確定你的Python版本不低於3.6.4,a.txt和b.txt文件已經準備就緒。')
lista = [] # 創建空列表lista
fa = open('A.txt',encoding='utf-8') # 打開a.txt
for line in fa.readlines():
lista.append(line.replace('\n','\n')) #將fa中的每一行數據添加到lista列表中
# 將b.txt創建為列表
listb = [] # 創建空列表listb
fb = open('B.txt',encoding='utf-8') # 打開a.txt
for line in fb.readlines():
listb.append(line.replace('\n','\n')) #將fb中的每一行數據添加到listb列表中
x = set(lista) # 將lista去重後賦給x
y = set(listb) # 將listb去重後賦給y
c = x & y # x、y取交集
fc = open('交集數據.txt', 'w',encoding='utf-8') # 創建或打開'C.TXT'
fc.writelines(c) # 將交集數據寫入'c.TXT'
fc.close() # 搞定,收工。
print ('正在處理數據……請稍候')
print ('交集數據為 %d' % len(c))
print ('搞定,打開a.txt同文件夾下的\'交集數據.txt\'查看結果。')
閱讀更多 aovs 的文章