Python for 循环的性能
Python performance of for loops
第一种方法是否比第二种方法有任何性能优势?
方法一:
for row in soup.select('table.results tbody tr')
# Do stuff
方法二:
rows = soup.select('table.results tbody tr')
for row in rows:
# Do stuff
我经常在编码示例中看到方法 2,但我看不到它提供的性能或可读性优势
知名人士:
正在执行的语句无关。我更想知道它是否被多次执行。 @trincot 评论说它没有。所以我想这回答了我的问题
正如所指出的,我还假设 rows
没有在我的代码中的其他任何地方重用。
不,表达式在两种情况下都只计算一次。您可以自己衡量性能并得出结论,但您发现的任何差异都将是微小的,并且会因其他外部因素而波动。
对 rows
变量的赋值只发生在两个备选方案之一中,但代表的开销如此之小,以至于很难衡量它。
可读性见仁见智。选择您认为最易读的内容。
第一种方法是否比第二种方法有任何性能优势?
方法一:
for row in soup.select('table.results tbody tr')
# Do stuff
方法二:
rows = soup.select('table.results tbody tr')
for row in rows:
# Do stuff
我经常在编码示例中看到方法 2,但我看不到它提供的性能或可读性优势
知名人士:
正在执行的语句无关。我更想知道它是否被多次执行。 @trincot 评论说它没有。所以我想这回答了我的问题
正如所指出的,我还假设
rows
没有在我的代码中的其他任何地方重用。
不,表达式在两种情况下都只计算一次。您可以自己衡量性能并得出结论,但您发现的任何差异都将是微小的,并且会因其他外部因素而波动。
对 rows
变量的赋值只发生在两个备选方案之一中,但代表的开销如此之小,以至于很难衡量它。
可读性见仁见智。选择您认为最易读的内容。