web-dev-qa-db-ja.com

リストからパラメーターを抽出し、それらを関数呼び出しに渡す方法

以下の例のように、リストから項目を抽出し、それらをパラメーターとして関数呼び出しに渡すための良い簡単な方法は何ですか?

例:

def add(a,b,c,d,e):
    print(a,b,c,d,e)

x=(1,2,3,4,5)

add(magic_function(x))
39
falek.marcin

タプルまたはリストをスターを使用して位置引数に展開できます。

def add(a, b, c):
    print(a, b, c)

x = (1, 2, 3)
add(*x)

同様に、ダブルスターを使用して、dictをキーワード引数にアンパックできます。

x = { 'a': 3, 'b': 1, 'c': 2 }
add(**x) 
61
Cat Plus Plus

*アンパック演算子

>>> l = [1,2,3,4,5]
>>> def add(a,b,c,d,e):
...    print(a,b,c,d,e)
...
>>> add(*l)
1 2 3 4 5
11
Tim Pietzcker

_*_演算子を使用します。したがって、add(*x)はあなたが望むことをするでしょう。

詳細については、この他のSO question を参照してください。

4
arunkumar