从python列表中逐个调用函数,并为一个函数运行多次

时间:2017-06-28 14:39:15

标签: python python-2.7

我们有包含函数的列表,在for循环迭代中我需要调用它们。

list1 = ['f1(agr1,agr2)', 'f2(arg1)', 'f3(arg1,arg2,agr3)']

for i in list1:
   i

这不是在执行。

当我使用如下时:

for i in list1:
   i()

获得以下错误:

TypeError: 'str' object is not callable

另一个是我需要在不同的列表中使用函数参数并使用zip in for循环或如何传递参数

请帮忙

1 个答案:

答案 0 :(得分:2)

您的第一项是字符串,正如错误中所述。您的函数需要实际指定函数:

list1 = [(f1, (arg1, arg2)),
         (f2, (arg1,)),
         (f3, (arg1, arg2, arg3))]

for i in list1:
    i[0](*i[1])

目前,您列出的不是函数本身,而是列出了通过调用它们返回的输出。

我不确定你的用例,所以这可能不是达到你真正想要的最佳方式,但是这个稍微凌乱的解决方案应该可行。