<pre name="code" class="python">import time, sys
reps = 1000
size = 10000
# 测试主体
def tester(func, *args):
startTime = time.time()
for i in range(reps):
func(*args)
elapsed = time.time() - startTime
return elapsed
# for
def forStatement():
res = []
for x in range(size):
res.append(abs(x))
# list comprehension
def listComprehension():
res = [abs(x) for x in range(size)]
# map function
def mapFunction():
res = map(abs, range(size))
def generatorExpression():
res = list(abs(x) for x in range(size))
# 测试输出
print sys.version
tests = (forStatement, listComprehension, mapFunction, generatorExpression)
for testfunc in tests:
print testfunc.__name__.ljust(20), '=>', tester(testfunc)
Python性能对比:for循环 vs 列表推导
本文通过Python代码实验对比了for循环、列表推导、map函数及生成器表达式在执行效率上的差异。通过对相同任务的不同实现方式进行计时,展示了在不同场景下各种方法的性能表现。
235

被折叠的 条评论
为什么被折叠?



