有時迴圈一次會做兩件事,只因剛好能同時完成,但這會增加日後修改難度。
拆開迴圈後,我們每次就只需了解要修改的行為即可。

Split Loop
分別考慮重構與優化,先釐清(重構)再優化。
即便最後拆開迴圈成為效能瓶頸,再重新放一起也不難。迭代串列往往不會成為瓶頸,但拆開迴圈能引導你做出更好優化。
# Before
numbers = [10, 20, 30, 40, 50]
total = 0
count = 0
for number in numbers:
total += number
count += 1
average = total / count
print(f"Total: {total}, Average: {average}")
# After
numbers = [10, 20, 30, 40, 50]
total = 0
count = 0
for number in numbers:
total += number
for number in numbers:
count += 1
average = total / count
print(f"Total: {total}, Average: {average}")