列表列表中的Python函数参数

时间:2015-07-17 10:04:44

标签: python list function loops

我有一个功能:

def func(a,b,c,d,e,f,g):
    do something using the paramters

我希望通过循环播放funcparam1来运行函数param2

我在列表中有参数,例如:

param1 = list[a,b,c,d,e,f,g]
param2 = list[a1,b1,c1,d1,e1,f1,g1]

我试过

main_list = [param1,param2,....,param8]

for a in main_list:
    func(a)

但这似乎不起作用!

修改

我的函数有7个参数,我必须循环8次,我有8个不同的参数列表 -

4 个答案:

答案 0 :(得分:2)

使用*args语法:

for params in [param1, param2, param3, ...]:
    func(*params)

然后*params语法将序列扩展为函数的单独参数。当然,请确保该位置参数的数量与您的函数所期望的一致。

演示:

>>> def func(a, b, c, d, e, f, g):
...     print a, b, c, d, e, f, g
... 
>>> param1 = ('a1', 'b1', 'c1', 'd1', 'e1', 'f1', 'g1')
>>> param2 = ('a2', 'b2', 'c2', 'd2', 'e2', 'f2', 'g2')
>>> for params in [param1, param2]:
...     func(*params)
... 
a1 b1 c1 d1 e1 f1 g1
a2 b2 c2 d2 e2 f2 g2

答案 1 :(得分:2)

这就是你想要的:

def func(*vargs):
    for a in vargs:
       print a


func(*[1,2,3])
1
2

<强>即。)

def func(*vargs):
    for a in vargs:
       print a


func(*main_list)

修改

a,g,e=10,40,50

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


func(*[a,g,e])
10 40 50

3

答案 2 :(得分:2)

这正是您所要求的:

def func(a,b,c,d,e,f,g):
    pass

param1 = [1,2,3,4,5,6,7]
param2 = [11,21,31,41,51,61,71]

main_list = [param1, param2]

for a in main_list:
    func(*a)

答案 3 :(得分:0)

尝试通过unpacking参数中的参数列表调用函数。示例 -

main_list = [param1,param2,....,param8]

for a in main_list:
    func(*a)