如果元素在列表中,则打印"Foo"

Str*_*ple 0 python python-2.x python-3.x

我试过了:

>>> l = [1,2,3]
>>> x = 1
>>> x in l and lambda: print("Foo")
    x in l && print "Horray"
            ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

一些谷歌搜索透露,这print是一个声明,python2而它是一个功能python3.但是,我已经尝试了上面的snipped python3并且它抛出了SyntaxError异常.

我怎么能在一条线上做到这一点?(可读性或谷歌编程实践不是问题)

mau*_*add 6

l = [1, 2, 3]
x = 1
if x in l: print "Foo"
Run Code Online (Sandbox Code Playgroud)

我不是一个自作聪明,这是在一条线上做到这一点的方法.或者,如果您使用的是Python3:

if x in l: print("Foo")
Run Code Online (Sandbox Code Playgroud)

  • +1正确的方式来做到这一点.我不知道这种迷恋人们对于单行人员有什么感觉,我只能假设他们在他们的环境中缺少换行符:-) (4认同)
  • Python变得简单易读.这两个属性都出现在我发布的代码中,除非有正当理由使用短路评估,否则你只是编写丑陋的代码. (3认同)