私はPythonコードでこれを頻繁に行っているようです(そうすべきかどうかはおそらく別のトピックです):
the_list = get_list_generator()
#So `the_list` is a generator object right now
#Iterate the generator pulling the list into memory
the_list = list(the_list)
算術代入を行うとき、次のような省略形があります...
the_number += 1
したがって、割り当てに関数を使用するときに同じ速記を実現する方法はありますか。これを行うビルトインがあるのか 、カスタム演算子を定義する必要があるのか (私はそれをやったことがありません)、または最終的によりクリーンなコードにつながる他の方法があるのか どうかはわかりません(使用することを約束しますジェネリック型キャストの場合)。
#Maybe using a custom operator ?
the_list @= list()
#Same as above, `the_list` was a generator, but is a list after this line
編集::
私は最初に言及しませんでした: これは、インタラクティブ モードで最も頻繁に発生します (したがって、必要な入力を減らしたい理由です)。iterator のインデックスを作成しようとしてgen_obj[3]
、エラーが発生したら、それをキャストする必要があります。
示唆されているように、これはおそらく最高ですが、最終的には私が探しているものではありません.
the_list = list(get_list_generator())