【发布时间】:2013-02-21 07:33:08
【问题描述】:
这里是 Python3.3 上的代码:
import sys, re, math
str1 = str(sys.stdin.readlines())
Data = re.findall('\\b\\d+\\b', str1)
for i in reversed (Data):
print('%.4f' % math.sqrt(float(i)))
如您所见,该程序从输入中获取数据(多行随机字符串),并搜索该字符串包含的每个数字。 之后只返回它找到的每个数字的平方根。
好吧,算法有效,但速度不够快,我不知道如何优化它。 请帮帮我。我需要做什么来优化上面的代码?
【问题讨论】:
-
“数字”是指数字吗?另外,您能否向我们展示一些示例输入/输出?
-
"但不够快" -- 您正在处理的文件有多大?它有多快?您需要多快?
-
你有多少输入?您是否配置文件以找到热点?
-
我不认为你的问题是 math.sqrt。您可以非常快速地计算数百个数字。我在不到两秒的时间内计算并打印了 10000 个。
-
一定要倒序吗?为什么奇怪的
str(sys.stdin.readlines())?这将类似于['line1\n', 'line2\n]
标签: python optimization python-3.x square-root