10

Pythonタプルt = v1, v2, v3が与えられると、これらを解凍して与えられるようにするユーティリティがあります。

def foo(v1,v2,v3): pass

これの代わりに:

foo(t[0],t[1],t[2])

あなたはこれを行うことができます:

foo(unpack(t))

タプルやリストで利用できるそのようなユーティリティについて知りたいのですが。

心から感謝します。

4

3 に答える 3

19

うん。解凍演算子('*')を使用できます

foo(*t)

これは、tが、、、またはジェネレーターの場合でも機能することに注意しlisttupleください


**オブジェクト(通常は辞書)のマッピングで演算子を使用して、キーワードを持つ関数に引数を渡す同様の方法があります。

def foo(key=None,foo=None):
    pass #...

foo(**{key:1,foo:2})
于 2012-09-18T10:49:05.193 に答える
2

引数リストを解凍します

foo(*(v1, v2, v3))
于 2012-09-18T10:49:11.403 に答える
1

*args引数の受け渡しを使用します。

foo(*t)

デモ:

>>> def foo(v1, v2, v3):
...     print(v1, v2, v3)
...
>>> t = 1, 2, 3
>>> foo(*t)
1 2 3 
于 2012-09-18T10:48:56.987 に答える