Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将lambda函数转换为def格式?_Python_Python 2.7_Function - Fatal编程技术网

Python 如何将lambda函数转换为def格式?

Python 如何将lambda函数转换为def格式?,python,python-2.7,function,Python,Python 2.7,Function,我在这里找到了一个问题的答案(),但我还没有学会如何使用lambdas prune = lambda tree : [prune(branch) for branch in tree if branch != []] l = [[[[], []], [[], []]], [[], [], []]] print prune(l) 我查看了许多网站,但似乎无法将其转换为常规功能,如: def prune(tree): for branch in tree: if bran

我在这里找到了一个问题的答案(),但我还没有学会如何使用lambdas

prune = lambda tree : [prune(branch) for branch in tree if branch != []]

l = [[[[], []], [[], []]], [[], [], []]]
print prune(l)
我查看了许多网站,但似乎无法将其转换为常规功能,如:

def prune(tree):
    for branch in tree:
        if branch!=[]:
             prune(branch)
    return branch

print prune([[[[], []], [[], []]], [[], [], []]])

有人能告诉我修剪前和修剪后的大方括号是什么吗?

你所要做的就是在前面打一个
回车键

def prune(tree):
    return [prune(branch) for branch in tree if branch != []]
如果您想分解-并且没有真正的理由,那么:

def prune(tree):
    for branch in tree:
        if branch != []:
            yield prune(branch)
或:


你所要做的就是在前面打一个
return

def prune(tree):
    return [prune(branch) for branch in tree if branch != []]
如果您想分解-并且没有真正的理由,那么:

def prune(tree):
    for branch in tree:
        if branch != []:
            yield prune(branch)
或:


lambda始终可以通过一条返回语句轻松转换为def:

f = lambda a: b
总是几乎与相同

def f(a):
    return b
如果您需要在不理解列表的情况下进行示例:

def prune(tree):
    ret = []
    for branch in tree:
        if branch!=[]:
            ret.append(prune(branch))
    return ret

lambda始终可以通过一条返回语句轻松转换为def:

f = lambda a: b
总是几乎与相同

def f(a):
    return b
如果您需要在不理解列表的情况下进行示例:

def prune(tree):
    ret = []
    for branch in tree:
        if branch!=[]:
            ret.append(prune(branch))
    return ret

return[如果分支!=[]则修剪树中的分支!
大方括号围绕一个分支。顺便说一句,在Python中,对命名函数使用
lambda
通常被认为是不好的风格。它们应该用于匿名函数,因此将它们附加到一个名称上有点违背了目的。;)<代码>返回[如果分支!=[]则修剪树中的分支!
大方括号围绕一个分支。顺便说一句,在Python中,对命名函数使用
lambda
通常被认为是不好的风格。它们应该用于匿名函数,因此将它们附加到一个名称上有点违背了目的。;)