我有这样的剧本
for b in range(len(xy_alignments.keys())):
print str(b) + " : " + str(len(xy_alignments.keys()))
x = xy_alignments.keys()[b][0]
y = xy_alignments.keys()[b][1]
yx_prob = yx_alignments[(y,x)] / x_phrases[x]
xy_prob = xy_alignments[(x,y)] / y_phrases[y]
line_str = x + "\t" + y + "\t" + str(yx_prob) + "\t" + str(xy_prob) + "\n"
of.write(line_str.encode("utf-8"))
of.close()
xy_alignments
、yx_alignments
、x_phrases
和y_phrases
是
python defaultdict涉及数百万个键的变量。你知道吗
当我运行上面的循环时,它运行得非常慢。你知道吗
Python爱好者有什么建议让它快点吗?你知道吗
谢谢你
这里有一个更惯用的版本,也应该更快。你知道吗
这个
key()
调用iteritems()
保存一个dict查找encode()
调用,因为所有输出都在ascii范围内。你知道吗相关问题 更多 >
编程相关推荐