好的,所以这个问题的措辞很难说。
但是,我有两个用Python 3.5.2编写的脚本:
import time
t0 = time.clock()
def hello():
a = []
for i in range(10000000):
a.append(i)
hello()
t1 = time.clock()
print((t1-t0))
出:1.0960211284655088
和
import time
t0 = time.clock()
a = []
for i in range(10000000):
a.append(i)
t1 = time.clock()
print((t1-t0))
出:1.432725885821128
第一个脚本在定义的函数内运行得更快,然后调用;但是,我不知道为什么会这样,我想了解所以我可以学习如何优化代码。
这是一个只涉及Python 3这一特定方面的问题。我知道列表推导和map()是执行此特定迭代的更快,更快速和更pythonic的方法。
答案 0 :(得分:0)
在我看来。差异是由搜索变量a引起的。 如果a是本地的,函数会快速找到并附加。 如果a是全局的,则函数首先在本地搜索,然后在全局搜索。这就是花费更多时间的原因。