1回の反復と多数の反復のパフォーマンスへの影響について疑問に思っています。私は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
さて、読みやすさの問題は別として、厳密にはパフォーマンスの観点から、multi_pass よりも one_pass に本当の利点はありますか? ほとんどの作業が変換関数自体で行われると仮定すると、multi_pass の各反復にかかる時間は約 1/3 だけではないでしょうか?