想知道进行一次迭代与多次迭代对性能的影响。我在 Python 中工作——我不确定这是否会影响答案。
考虑尝试对列表中的每个项目执行一系列数据转换。
def one_pass(my_list):
for i in xrange(0, len(my_list)):
my_list[i] = first_transformation(my_list[i])
my_list[i] = second_transformation(my_list[i])
my_list[i] = third_transformation(my_list[i])
return my_list
def multi_pass(my_list):
range_end = len(my_list)
for i in xrange(0, range_end):
my_list[i] = first_transformation(my_list[i])
for i in xrange(0, range_end):
my_list[i] = second_transformation(my_list[i])
for i in xrange(0, range_end):
my_list[i] = third_transformation(my_list[i])
return my_list
现在,除了可读性问题,严格在性能方面,one_pass 是否比 multi_pass 有真正的优势?假设大部分工作都发生在转换函数本身中,那么 multi_pass 中的每次迭代不会只花费大约 1/3 的时间吗?