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,但我看不到它提供的性能或可读性优势

知名人士:

  1. 正在执行的语句无关。我更想知道它是否被多次执行。 @trincot 评论说它没有。所以我想这回答了我的问题

  2. 正如所指出的,我还假设 rows 没有在我的代码中的其他任何地方重用。

不,表达式在两种情况下都只计算一次。您可以自己衡量性能并得出结论,但您发现的任何差异都将是微小的,并且会因其他外部因素而波动。

rows 变量的赋值只发生在两个备选方案之一中,但代表的开销如此之小,以至于很难衡量它。

可读性见仁见智。选择您认为最易读的内容。