【发布时间】:2018-07-03 18:23:16
【问题描述】:
我正在尝试判断哪个更 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
生成器表达式形成短路会比列表 comp 更快吗?
【问题讨论】:
-
在这种情况下使用
if True或立即使用return会更有效。 -
对不起,我选择了一个简单的例子来具体演示;我的用例不是取自这样的表达式。
-
注意,遵循 PEP8 将是 Pythonic,这意味着,no spaces immediately inside parentheses, brackets, or braces。此外,生成器表达式,如果它们是唯一的参数,则不需要括号!这好多了,不是吗?
any((i % 2 == 0 and i > 4) for i in range(10))
标签: python