8

次のように itertools.product と呼ぶ小さなスクリプトを書いています。

for p in  product(list1,list2,list3):
            self.createFile(p)

含めるリストの数を事前に知らなくても、この関数を呼び出す方法はありますか?

ありがとう

4

2 に答える 2

20

スターまたはスプラット演算子 (いくつかの名前があります) を使用できます: for p in product(*lists)wherelistsは渡したいもののタプルまたはリストです。

def func(a,b):
    print (a,b)

args=(1,2)
func(*args)

関数を定義して、可変数の引数を受け入れるようにするときに、同様のことができます。

def func2(*args): #unpacking
   print(args)  #args is a tuple

func2(1,2)  #prints (1, 2)

そしてもちろん、splat 演算子を可変数の引数と組み合わせることができます。

args = (1,2,3)
func2(*args) #prints (1, 2, 3)
于 2012-08-15T16:17:30.067 に答える
4

splat operator( *) を使用して、不明な数の引数の位置引数を渡したり収集したりします。

def func(*args):
   pass

lis = [1,2,3,4,5]
func(*lis)
于 2012-08-15T16:17:57.517 に答える