Python向lambda传递一个变量(如果存在)

2024-10-06 12:07:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我很想知道如何在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

Tags: 方法代码列表executedatalenifwith
3条回答

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

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

希望有帮助!在

Python附带了vararg语法,您可以直接使用它。在

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

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

代码是有效的-不是为了效率而优化,而是先为清晰而优化。 如果代码成为性能热点。。。考虑一下效率。在


记住,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()

相关问题 更多 >