【发布时间】:2017-05-09 21:49:02
【问题描述】:
由于双重条件,我不知道如何将此函数编写为 lambda:
def f(e):
if not isinstance(e,list):
if e >10:
return e
else:
return filter(None,[f(y) for y in e])
my_list=[[1], [2,[3,12, [4,11,12]]], [5,6,13,14],[15]]
>>> f(my_list)
[[[12, [11, 12]]], [13, 14], [15]]
另外,pythonic 的方式是什么来编写这样一个过滤任意嵌套列表的函数?
【问题讨论】:
-
在
e不是list和e <= 10的情况下是否要返回None?此外,比双重条件更严重的是函数的递归性质。当函数没有名称可调用时,您希望如何递归? -
“写这样一个函数的pythonic方法是什么”——不是作为lambda?
-
@RoryDaulton 不,这就是我必须过滤掉它的原因
-
那要返回什么?函数总是返回something——如果没有遇到
return语句,则返回None。 -
如果你用文字解释你想让这个函数做什么呢?
标签: python python-2.7 list lambda functional-programming