Pythonでは、リストを*args
に変換するにはどうすればよいですか?
私は知っている必要があります
scikits.timeseries.lib.reportlib.Report.__init__(*args)
*args
として渡されるいくつかのtime_seriesオブジェクトが必要ですが、timeseriesオブジェクトのリストがあります。
Iterableの前に*
演算子を使用して、関数呼び出し内で展開できます。例えば:
timeseries_list = [timeseries1 timeseries2 ...]
r = scikits.timeseries.lib.reportlib.Report(*timeseries_list)
(*
の前のtimeseries_list
に注意してください)
pythonドキュメント から:
構文* expressionが関数呼び出しに含まれる場合、expressionは反復可能に評価される必要があります。この反復可能からの要素は、追加の位置引数であるかのように扱われます。位置引数x1、...、xNがあり、expressionがシーケンスy1、...、yMに評価される場合、これはM + N位置引数x1、...、xN、y1、...との呼び出しと同等です。 ..、yM。
これは、pythonチュートリアルの 引数リストのアンパック というタイトルのセクションでも説明されています。このセクションでは、**
演算子。
はい、引数を関数に渡す* argを使用すると、pythonがargの値をアンパックして関数に渡します。
そう:
>>> def printer(*args):
print args
>>> printer(2,3,4)
(2, 3, 4)
>>> printer(*range(2, 5))
(2, 3, 4)
>>> printer(range(2, 5))
([2, 3, 4],)
>>>
*args
は、関数が一般に同じタイプの多くの引数を取ることを意味します。
詳細については、Pythonチュートリアルの このセクション をご覧ください。