【发布时间】:2012-02-18 23:44:48
【问题描述】:
我试过了:
>>> l = [1,2,3]
>>> x = 1
>>> x in l and lambda: print("Foo")
x in l && print "Horray"
^
SyntaxError: invalid syntax
通过谷歌搜索发现print 是python2 中的一个语句,而它是python3 中的一个函数。但是,我已经尝试了上面在python3 中的片段,它抛出了 SyntaxError 异常。
知道如何在一行中做到这一点吗? (可读性或谷歌编程实践在这里不是问题)
【问题讨论】:
-
几个小时前有人问过similar question。
-
但是,我想做short-circuiting way
-
if x in l确实 短路,因为它x匹配l中的第一个元素,它等于它,它不会评估其余部分元素 -
他想短路外部布尔表达式,
and部分。喜欢x in l and foobar() or barbaz() -
@Irfy 我误解了 OP 的意图。你的答案就是他想要的。
标签: python python-3.x python-2.x