![](/img/trans.png)
[英]Auto-PEP8 is adding lines by turning my lambda into def function, how do I disable this specific auto format?
[英]How do I transform this lambda function into def format?
我在這里找到了這個問題的答案( 如何為任意列表建立遞歸? ),但是我還沒有學會如何使用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([[[[], []], [[], []]], [[], [], []]])
有人可以告訴我在修剪之前和結束時要用那些大方括號嗎?
您所要做的就是在前面打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)
要么:
def prune(tree):
branches = []
for branch in tree:
if branch != []:
branches.append(prune(branch))
return branches
使用單個return語句,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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.