将3行和if语句缩减为一行

时间:2015-08-13 17:27:58

标签: python

我正在尝试通过端口向另一个程序发送命令。在第二个程序中,我想查看是否存在光,如果存在,则设置一个等于该光的新变量。超过三行代码看起来像这样......

for light in mari.lights.list(): 
    if light.isEnvironmentLight():      
        myEnvLight = light  

然后,我将能够通过一些额外的套接字命令为'myEnvLight'设置一些属性......我遇到的麻烦是将for和if语句作为单行命令发送。

我尝试使用'list comprehension'来减少代码的'for'部分,然后我尝试使用三元运算符来简化'if'部分。这两件事对我来说都是新的。我到目前为止的结果是

myEnvLight = [light if light.isEnvironmentLight() else 0 for light in mari.lights.list()]

现在这可能会让你们大多数人感到无聊,但这是我迄今为止最好的!那么,只是想知道是否有人有办法将这三条线拟合到一条线上?

0 个答案:

没有答案