def direct_len(lst):
total = 0
for x in range(1000):
total += len(lst) + 1
def precalc(lst):
length = len(lst)
total = 0
for x in range(1000):
total += length + 1
if __name__ == '__main__':
import timeit
print(timeit.timeit("direct_len(list(range(100)))", setup="from __main__ import direct_len", number=10000))
print(timeit.timeit("precalc(list(range(100)))", setup="from __main__ import precalc", number=10000))
下面是一个使用@DSM建议的^{} 的简单测试:
在Windows 8上使用Python 3.5,我得到了以下结果:
访问一个存储的变量要比访问一个函数并向其传递一个已访问的变量快得多。你知道吗
然而,正如我在comment above中所说的,这并不重要。如果您调用的函数非常昂贵,这可能很重要,但这次不是这样。使用任何能让你的代码看起来更干净的东西。你知道吗
Python的列表将其长度存储在一个变量中,因此这两种方式没有太大区别。你知道吗
第一个循环每次都得到长度(这只是一个变量,len()函数中没有任何计算),第二个循环只做一次函数。我考试的时间是一样的。你知道吗
相关问题 更多 >
编程相关推荐