我一直在尝试优化以下两个嵌套循环:
def startbars(query_name, commodity_name):
global h_list
nc, s, h_list = [], {}, {}
query = """ SELECT wbcode, Year, """+query_name+"""
FROM innovotable WHERE commodity='"""+commodity_name+"""' and
"""+query_name+""" != 'NULL' """
rows = cursor.execute(query)
for row in rows:
n = float(row[2])
s[str(row[0])+str(row[1])] = n
nc.append(n)
for iso in result:
try:
for an_year in xrange(1961, 2031, 1):
skey = iso+str(an_year)
h_list[skey] = 8.0 / max(nc) * s[skey]
except:
pass
有什么想法吗?谢谢。在
您的代码不完整,因此很难给出好的建议,但是:
你还需要知道当前代码有多慢,你需要它有多快,否则你的优化可能会放错地方。
你的数据结构都乱了。也许有些东西会更快:
或者将所有检查转移到第一个循环中:
^{pr2}$相关问题 更多 >
编程相关推荐