1. ホーム
  2. python

[解決済み] 関数呼び出し時にリストを*argsに変換する [重複]。

2022-04-24 20:14:59

質問

Pythonで、リストをどのように *args ?

という関数があるため、知る必要があります。

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

として渡された複数のtime_seriesオブジェクトが欲しい。 *args 一方、私の場合はタイムスケール・オブジェクトのリストを持っています。

どのように解決するのですか?

を使用することができます。 * 演算子を反復記号の前に置くと、関数呼び出しの中で反復記号を展開することができます。例えば

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のチュートリアルでもカバーされています。 引数リストのアンパッキング を使ったキーワード引数の辞書で同様のことをする方法も示しています。 ** 演算子を使用します。