パラメーターリストとして渡すことができるように、タプルを爆発させるにはどうすればよいですか?
-
02-10-2019 - |
質問
このようなメソッド定義があるとしましょう。
def myMethod(a, b, c, d, e)
それから、私はこのような変数とタプルを持っています:
myVariable = 1
myTuple = (2, 3, 4, 5)
パラメーターとしてメンバーを渡すことができるように、タプルを爆発させる方法はありますか?このようなもの(タプル全体が2番目のパラメーターと見なされるため、これは機能しないことはわかっています):
myMethod(myVariable, myTuple)
可能であれば、各タプルメンバーを個別に参照することを避けたいです...
解決
あなたはを探しています 引数の開梱 オペレーター *
:
myMethod(myVariable, *myTuple)
他のヒント
から Pythonドキュメント:
逆の状況は、引数がすでにリストまたはタプルにあるが、個別の位置引数を必要とする関数呼び出しのために開梱する必要がある場合に発生します。たとえば、組み込み範囲()関数は、個別の開始と停止引数が期待されます。それらが個別に利用可能でない場合は、 *-operatorで関数コールを書き込み、リストまたはタプルから引数を解きます。
>>> range(3, 6) # normal call with separate arguments
[3, 4, 5]
>>> args = [3, 6]
>>> range(*args) # call with arguments unpacked from a list
[3, 4, 5]
同様に、辞書は** - オペレーターとキーワード引数を提供できます。
>>> def parrot(voltage, state='a stiff', action='voom'):
... print "-- This parrot wouldn't", action,
... print "if you put", voltage, "volts through it.",
... print "E's", state, "!"
...
>>> d = {"voltage": "four million", "state": "bleedin' demised", "action": "VOOM"}
>>> parrot(**d)
-- This parrot wouldn't VOOM if you put four million volts through it. E's bleedin' demised !
所属していません StackOverflow