499

Pythonタプルを関数に展開する方法はありますか?実際のパラメータとして?

たとえば、ここexpand()で魔法を行います。

some_tuple = (1, "foo", "bar")

def myfun(number, str1, str2):
    return (number * 2, str1 + str2, str2 + str1)

myfun(expand(some_tuple)) # (2, "foobar", "barfoo")

myfunとして定義できることは知っていますmyfun((a, b, c))が、もちろんレガシーコードが存在する可能性があります。ありがとう

4

6 に答える 6

873

myfun(*some_tuple)あなたが要求することを正確に行います。オペレーターは*タプル (またはイテラブル) を単純にアンパックし、それらを位置引数として関数に渡します。引数のアンパックについての詳細を読んでください。

于 2010-01-03T02:24:05.673 に答える
16

Python チュートリアルのセクション 4.7.3 と 4.7.4を見てください。タプルを引数として渡すことについて話します。

タプルを使用してシーケンスを渡す代わりに、名前付きパラメーターを使用する (および辞書を渡す) ことも検討します。位置が直感的でない場合や複数のパラメーターがある場合、位置引数の使用は悪い習慣であることがわかりました。

于 2010-01-03T02:28:28.287 に答える