def filt(lst,n):
if len(lst) == 0:
return []
return ([lst[0]] if lst[0] >= n else []) + filt(lst[1:],n)
所以我想把最后一行写成“正常”,(即,在一行中不用“if”和“else”)任何方法都可以吗?
答案 0 :(得分:0)
您需要将其分成两部分,并将filt(lst[1:], n)
分别附加到两者。或者您可以将filt(lst[1:], n)
转换为单独的变量:
def filt(lst,n):
if len(lst) == 0:
return []
next_value = filt(lst[1:], n)
if lst[0] >= n:
return lst[0] + next_value
else:
return [] + next_value