PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
Python
[問題] 請教更高效的比對方法(已解決)
作者:
shala
(沙羅)
2019-03-03 00:27:48
我有兩個純文字檔
①Keyword.txt:待整理的關鍵字集
②NG.txt:已確定剔除的關鍵字集
兩個檔案都是每行一個關鍵字,各約1000行
我的工作是把Keyword.txt和NG.txt比對,如果Keyword.txt中的關鍵字未收錄在NG.txt裡
,則寫入Temp.txt
我的做法是把NG.txt的內容存成字典,然後將Keyword.txt中的關鍵字逐一與字典比對
但這個方法似乎效率不太好,花了1分鐘以上的時間才完成
所以想請教有無更高效率的做法?
作者:
Sunal
(SSSSSSSSSSSSSSSSSSSSSSS)
2019-03-03 00:31:00
你每讀一行NG就要開檔關檔一次? 另外不要用關鍵字當變數名其實是開檔兩次 temp.txt跟ketword.txt一次讀完NG & keyword檔案再一次寫到 temp.txt就好
作者:
djshen
(djshen)
2019-03-03 00:44:00
O(n)的東西寫成O(n^2)..
作者:
TitanEric
(泰坦)
2019-03-03 01:03:00
set difference
作者: edwar (海邊的野孩子)
2019-03-03 01:36:00
t=open 到 t.close 的縮排位置錯了, 要跟第一個for一樣
作者:
nini200
(200妮妮)
2019-03-03 01:36:00
keyword集合A NG集合B A-B?
作者: edwar (海邊的野孩子)
2019-03-03 01:38:00
還有,存放NG關鍵字dict的變數名字最好換一下,比如用ng變數名字取dict可能會有問題
作者:
lemon651
(小明)
2019-03-03 02:41:00
set difference 就解了阿既然你都知道有set或是dict這種數據結構 怎麼會想要每查一個字打開另一個檔爬一遍阿...我建議看一下你其他地方的文件讀寫是不是也是這種寫法,計算不花時間,io的時間不知道耗費了多少
作者:
p8p8
(..)
2019-03-03 04:22:00
你的兩個for loop要在同一個indent啦~你現在這樣是nested loop,造成每讀一行NG.txt,就讀取一整個Keyword.txt一次,那當然效率很差本來應該是O(N+M)的,你的寫法是O(NM)差很多還有跟前幾樓說的一樣,用set即可不需用dictionary
作者:
sean50301
( (づ′・ω・)づ)
2019-03-03 16:40:00
ahocorasick
作者:
utopia12
(......)
2019-03-04 04:43:00
Don’t use naive solutions, try elasticsearch
作者:
shala
(沙羅)
2019-03-04 17:44:00
可以解釋為什麼嗎?謝謝
繼續閱讀
[問題] 旅遊資訊網站同步訂房網站
a5772803
[問題] Tkinter 執行問題
yimean
[問題] 怎麼讓迴圈一直跑下去
shooty
[問題] colab上有類似terminal功能可以使用嗎?
jasonfghx
[問題] 請問解壓縮檔案要如何讀取?
alubasteve
[問題] AWS執行Python腳本問題
TZULIU
[教學] PyQt5 系列 Matplotlib 動畫教學
HenryLiKing
[問題] folium Json 地圖載入編碼問題
heavyking02
[問題] sys.argv無法取得拖曳的Unicode路徑
shala
[問題] 遞迴中的迴圈問題
gene50814
Links
booklink
Contact Us: admin [ a t ] ucptt.com