-2
def filt(lst,n):
if len(lst) == 0:
return []
return ([lst[0]] if lst[0] >= n else []) + filt(lst[1:],n)
"normal"のように最後の行を書きたいとします(つまり、ifとelseを1行に書きません)。非条件式でこのコードを書くにはどうすればよいですか?
def filt(lst,n):
if len(lst) == 0:
return []
return ([lst[0]] if lst[0] >= n else []) + filt(lst[1:],n)
"normal"のように最後の行を書きたいとします(つまり、ifとelseを1行に書きません)。非条件式でこのコードを書くにはどうすればよいですか?
これを2つに分け、それぞれ別々に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