在listcomp或genexp上,哪个更pythonic /更有效?

时间:2018-07-03 18:23:16

标签: python

我正在尝试确定哪个更pythonic。

if any( ( ( i % 2 == 0 and i > 4 ) for i in range(10) ) ) :
   return

if any( [ ( i % 2 == 0 and i > 4 ) for i in range(10) ] ) :
   return

生成器表达式形成短路的速度会比list comp快吗?

1 个答案:

答案 0 :(得分:3)

使用genexp。

list comp将在运行any之前得到完全评估,而genexp则不会。 any会短路第一个True值,因此您可以通过这种方式保存评估。