web-dev-qa-db-ja.com

リストをPythonの関数引数に展開する方法

リストを関数呼び出しの引数に展開できる構文はありますか?

例:

# Trivial example function, not meant to do anything useful.
def foo(x,y,z):
   return "%d, %d, %d" %(x,y,z)

# List of values that I want to pass into foo.
values = [1,2,3]

# I want to do something like this, and get the result "1, 2, 3":
foo( values.howDoYouExpandMe() )
136
Brian McFarland

存在しますが、検索するのは難しいです。ほとんどの人は「 splat 」演算子と呼んでいると思います。

ドキュメントには、「 引数リストの展開 」と記載されています。

次のように使用します:foo(*values)。辞書用のものもあります:

d = {'a': 1, 'b': 2}
def foo(a, b):
    pass
foo(**d)
160
Daenyth

foo(*values)のような*演算子を使用する必要がありますPython doc npackaging argument lists を読みます。

また、これを読んでください: http://www.saltycrane.com/blog/2008/01/how-to-use-args-and-kwargs-in-python/

def foo(x,y,z):
   return "%d, %d, %d" % (x,y,z)

values = [1,2,3]

# the solution.
foo(*values)
57
varunl

以下を試してください:

foo(*values)

これは、Pythonドキュメントで 引数リストの展開 として見つけることができます。

9
Andrew Clark

それは次の方法で実行できます。

foo(*values)
9
Ikke