Re: [問題] 存Data的方法
※ 引述《Andy58974 (奧蘭多布魯)》之銘言:
: 各位大大好
: 我有很多個文件要用python存進去
: 第一個文件的內容是:
: A C D F(這是第一行,以空白做分隔)
: W Q R Z(這是第二行,以空白做分隔)
: M J K N(這是第三行,以空白做分隔)
: ...
: ...
: ...
: 總共有500行
: 下一個文件的內容是:
: A O P F(這是第一行,以空白做分隔)
: W L S Z(這是第二行,以空白做分隔)
: M G H N(這是第三行,以空白做分額)
: 每個文件內容
: 以行做比對,只有第二項和第三項會變
: 我原本的作法是:
: 每一行在存的時候都給不同的編號以方便查詢
: 每一行用同一個class包起來(一個一個assign --> 編號=1,a=A,b=C,c=D,d=F 這樣的方法)
: 跑無限回圈讓他跑完
: 後來發現花費時間非常長...
: 總共有三個程式:
: main:表現index--http://codepad.org/Fs6zrLan
: model:存Data用的class--http://codepad.org/7veEgm9c
: upgrade:在google appengine 存Data的程式--http://codepad.org/VIhVyKtO
: 請問要如何存這些資料才能最節省時間???
: 希望能為小弟解惑
: 感謝各位大大
有用過 time or 一些 profile 的 tool 嗎
演算法沒有太大的改進的空間了。
一些細節的修改希望有幫助。
話說都集中 upgrade 這個file 應該沒錯吧?
1.
while i < len(tmp):
if tmp[i]=="^M":
del tmp[i]
i=i+1
這個 loop不必要,你是要把newline移掉嗎?
有點浪費。
在前一行做 line2 = lin2.strip()
應該就可以了。
這樣可以少做這個loop。
2.
counter.value 可能不用一直更新。
3.
for line in lines:
在你的Logic 來說,改成如下的寫法應該就好了。
lines = f.readlines() # 要拿掉。
然後
for line in f:
可以省掉常數的時間複雜度。
也可以不用浪費 lines的空間。
--
希望有用啦
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.62.8.191
※ 編輯: timTan 來自: 61.62.8.191 (07/31 01:07)
推
08/01 01:29, , 1F
08/01 01:29, 1F
→
08/01 15:43, , 2F
08/01 15:43, 2F
推
08/02 02:07, , 3F
08/02 02:07, 3F
討論串 (同標題文章)
Python 近期熱門文章
PTT數位生活區 即時熱門文章
-9
18