165

Python では、リストを に変換するにはどうすればよい*argsですか?

関数なので知っておく必要があります

scikits.timeseries.lib.reportlib.Report.__init__(*args)

として渡される time_series オブジェクトがいくつか必要ですが*args、timeseries オブジェクトのリストがあります。

4

3 に答える 3

248

*iterable の前に演算子を使用して、関数呼び出し内で展開できます。例えば:

timeseries_list = [timeseries1 timeseries2 ...]
r = scikits.timeseries.lib.reportlib.Report(*timeseries_list)

*(前に注意してくださいtimeseries_list

Pythonのドキュメントから:

構文 *expression が関数呼び出しにある場合、expression は iterable に評価される必要があります。この iterable の要素は、追加の位置引数であるかのように扱われます。位置引数 x1, ..., xN があり、expression がシーケンス y1, ..., yM に評価される場合、これは M+N 個の位置引数 x1, ..., xN, y1, を指定した呼び出しと同等です。 ..yM.

これは、python チュートリアルのUnpacking argument lists**というタイトルのセクションでも説明されており、演算子を使用してキーワード引数の辞書で同様のことを行う方法も示されています。

于 2010-10-15T10:50:49.937 に答える
22

はい、 *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],)
>>> 
于 2010-10-15T11:27:36.540 に答える
2

*argsjust は、関数が通常は同じ型のいくつかの引数を取ることを意味します。

詳細については、Python チュートリアルのこのセクションを参照してください。

于 2010-10-15T10:52:18.333 に答える