[问题] 如何修改code让其跑更快

楼主: sariel0322 (sariel)   2014-07-20 20:16:12
不好意思,最近需要跑相当大量的资料
因此需要把code的速度做最有效的提升
这是我的两个data
pfam.csv_IPR_NA.csv(csv不小心重复了,不过不是重点:p):
http://ppt.cc/oB18
proteinIDandGOID_norepet.csv:
http://ppt.cc/NSE3
我需要把第一个csv的第二栏跟第二个csv的第一个字段做对应
有对应到的全部做输出
类似下面这样:
http://ppt.cc/UA7t
以下是我的code:
import csv
proteinID = []
GOID = []
a = 0
o = open("final.csv","w")
g = open("proteinIDandGOID_norepet.csv","r")
f = open("pfam.csv_IPR_NA.csv","r")
for row in csv.reader(g):
proteinID.append(row[0])
GOID.append(row[1])
for row in csv.reader(f):
for i in range(len(GOID)):
if row[1] == proteinID[i]:
o.write(row[0] + "," + row[1]+"," + row[2] + "," + GOID[i] + "\n")
f.close()
o.close()
g.close()
想问一下大家有没有更有效率的写法
感恩orz
作者: goldflower (金色小黄花)   2014-07-20 22:21:00
用while写在同一个循环 用同一个index去跑 如果超出其中一个的长度后再去做判断跑第二个循环 这样咧@@?这样应该能减少一次重复的判断 不知可行否
作者: mantour (朱子)   2014-07-20 23:13:00
以proteinID为key建立搜寻树proteinID和GOID的对应是唯一的吗 同样proteinID是否会有两个以上的GOID?
楼主: sariel0322 (sariel)   2014-07-20 23:48:00
个csv都两个以上,只有一个我应该就用dict了……刚才没打好,两个csv都两个以上都是同一栏重复两个以上的ID
作者: goldflower (金色小黄花)   2014-07-20 23:58:00
欸对耶 我那样没跑比较快 只是长比较短XD

Links booklink

Contact Us: admin [ a t ] ucptt.com