関数def f(a, b, c, d)
と 2 つのタプルがあり、それぞれに 2 つの要素がある場合、それらの値を関数に送信できるようにこれらのタプルをアンパックする方法はありますか?
f(*tup1, *tup2)
Python 3.5.0 のリリース時点で、PEP 448 "Additional Unpacking Generalizations"により、この有効な Python の自然な構文が作成されます。
>>> f(*tup1, *tup2)
1 2 2 3
古いバージョンの Python では、タプルを連結して単一の拡張引数を提供する必要がある場合があります。
>>> tup1 = 1, 2
>>> tup2 = 2, 3
>>> def f(a, b, c, d):
print(a, b, c, d)
>>> f(*tup1+tup2)
1 2 2 3
を使用した別のアプローチchain
>>> from itertools import chain
>>> def foo(a,b,c,d):
print a,b,c,d
>>> tup1 = (1,2)
>>> tup2 = (3,4)
>>> foo(*chain(tup1,tup2))
1 2 3 4