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

Python-将变量传递给lambda(如果存在),python,lambda,Python,Lambda,我很好奇如何在Python中提高代码的效率,我必须执行一个操作,根据列表的长度,该操作可能会附加负载,也可能不会附加负载 现在,我使用if语句来确定是否存在有效负载。有更好或更干净的方法找到这个吗 #If payload, execute action with it if(len(data) > 1): action= mec.action(data[1])

我很好奇如何在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

代码按原样高效-不要为了效率而优化,先尝试为了清晰而优化。 如果代码成为性能热点。。。考虑一下效率


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

# 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()

代码按原样高效-不要为了效率而优化,先尝试为了清晰而优化。 如果代码成为性能热点。。。考虑一下效率


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

# 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])

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() 

希望有帮助

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

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

希望有帮助

你想要什么样的效率?理想的情况是更干净的代码/更好的逻辑。我认为这在时间上不可能变得更有效?它看起来很好:如果删除注释,代码仍然可以理解。我唯一想改变的是
if
语句:你不需要那些括号。你想要什么类型的效率?理想情况下更干净的代码/更好的逻辑。我认为这在时间上不可能变得更有效?它看起来很好:如果删除注释,代码仍然可以理解。我唯一想改变的是
if
语句:你不需要那些括号。“首先尝试优化以获得清晰。”这可能需要很长时间才能在软件中学习。聪明的代码是维护者的祸根,包括你自己,从现在起6个月。编写干净的代码,分析性能,然后优化需要优化的内容。。。甚至模糊地“聪明”地评论任何东西的垃圾。“首先尝试优化以获得清晰性。”这可能需要很长时间才能在软件中学习。聪明的代码是维护者的祸根,包括你自己,从现在起6个月。编写干净的代码,分析性能,然后优化需要优化的内容。。。甚至模糊地“聪明”地评论任何东西的垃圾