はじめに
Pythonでは、さまざまな方法でリストを作成できます。そのような方法の1つは、イテレータ関数と初期のシード値を使用することです。このチャレンジでは、イテレータ関数と初期のシード値を使用してリストを作成することが求められます。
This tutorial is from open-source community. Access the source code
💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください
Pythonでは、さまざまな方法でリストを作成できます。そのような方法の1つは、イテレータ関数と初期のシード値を使用することです。このチャレンジでは、イテレータ関数と初期のシード値を使用してリストを作成することが求められます。
あなたの課題は、イテレータ関数と初期のシード値を引数として受け取る unfold
関数を実装することです。イテレータ関数は1つの引数 (seed
) を受け取り、常に2つの要素を持つリスト ([value
, nextSeed
]) または終了するための False
を返す必要があります。unfold
関数は、while
ループを使用してイテレータ関数を呼び出し、False
が返されるまで value
を yield
するジェネレータ関数 fn_generator
を使用する必要があります。最後に、unfold
関数は、イテレータ関数を使用してジェネレータによって生成されるリストを返すためにリスト内包表記を使用する必要があります。
unfold
関数を実装します:
def unfold(fn, seed):
## ここにコードを記述してください
seed
) を受け取り、常に2つの要素を持つリスト ([value
, nextSeed
]) または終了するための False
を返すイテレータ関数 fn
。seed
。def unfold(fn, seed):
def fn_generator(val):
while True:
val = fn(val[1])
if val == False: break
yield val[0]
return [i for i in fn_generator([None, seed])]
f = lambda n: False if n > 50 else [-n, n + 10]
unfold(f, 10) ## [-10, -20, -30, -40, -50]
このチャレンジでは、イテレータ関数と初期のシード値を使用してリストを作成する方法を学びました。イテレータ関数と初期のシード値を引数として受け取り、イテレータ関数を使用してジェネレータによって生成されるリストを返す unfold
関数を実装しました。