我无法将这个函数写成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
不是一个列表且e<=10
的情况下返回None
吗?除了双重条件之外,更为严重的是函数的递归性质。当函数没有名称可调用时,你打算如何进行递归? - Rory Daultonreturn
语句,那么会返回None
。 - Rory Daulton