私は、コメントを「クリーン」に見せるために私の機能を修正するように言われています。私はalotを試してみました..しかし、私は何をしようとしているの達成するためにllambdaを使用する方法がわかりません。私のコードは動作します..それは私の質問されているものではありません。私の機能を修正するにはどうしたらいいですか?
ここに私のコードを修正する方法の提案があります。
def immutable_fibonacci(position):
#define a lambda instead of def here
def compute_fib (previousSeries, ignore):
newList = previousSeries
if len(newList) < 2: # Do this outside and keep this function focused only on returning a new list with last element being sum of previous two elements
newList.append(1)
else:
first = newList[-1]
second = newList[-2]
newList.append(first+second)
return newList
range=[None]*position
return reduce(compute_fib, range, [])
#Above is too much code. How about something like this:
#next_series = lambda series,_ : (Use these instead of the above line)
#return reduce(next_series, range(position - 2), [1, 1])
何かが役立ちます。私はこれらの提案をどのように実装できるか混乱しています。
これは私が試みたものです。
def immutable_fibonacci(position):
range=[None]*position
next_series = lambda series, _ : series.append(series[-1] + series[-2])
return reduce(next_series, range(position - 2), [1, 1])
です一般的には、それは '再定義することはおそらく良いアイデアではありません> = 2.従来のFIB位置する関数を呼び出すと仮定しています範囲 '。 – 101
何を参照できないのですか? –
そのコードの全体のデザインは狂っています。単純な 'for'ループではなく' None'値のリストで 'reduce'を使うのはなぜですか? – Blckknght