繁体   English   中英

Python-将变量传递给lambda(如果存在)

[英]Python - Pass a variable to lambda if it exists

我很好奇如何在Python中提高代码效率,我必须执行一个动作,该动作可能取决于列表的长度,也可能没有有效载荷。

现在,我正在使用if语句来确定是否存在有效负载。 有没有更好或更干净的方法来找到这个?

                    #If payload, execute action with it
                    if(len(data) > 1):
                        action= mec.action(data[1])
                    #If no payload, then just execute action
                    else:
                        action= mec.action()
                    return action

该代码按原样是有效的-与其优化效率,不如先尝试为清楚起见而优化。 如果代码随后成为性能热点,请考虑一下效率。


记住return结束一个函数; 这是一个稍微干净的替代方法:

# execute with payload if exists
if(len(data) > 1):
    return mec.action(data[1])
# execute without payload 
# this isn't reached if len(data) > 1
return mec.action()

Python带有vararg语法,您可以直接使用它。

return mec.action(*data[1:])

(我在这里假设data[2]开始没有意义,或者您可以使用mec.action(*data[1:2])

在这种情况下,只需使用如下三元运算符:

return mec.action(data[1]) if(len(data) > 1) else mec.action() 

希望能帮助到你!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM