我正在编写一个小脚本,我在其中调用itertools.product:
for p in product(list1,list2,list3):
self.createFile(p)
我有没有办法在不事先知道要包含多少列表的情况下调用此函数?
由于
答案 0 :(得分:14)
您可以使用星号或splat运算符(它有几个名称):for p in product(*lists)
其中lists
是要传递的元组或列表。
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)
答案 1 :(得分:2)
使用splat运算符(*
)传递和收集未知数量的参数位置参数。
def func(*args):
pass
lis = [1,2,3,4,5]
func(*lis)