我们有包含函数的列表,在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循环或如何传递参数
请帮忙
答案 0 :(得分:2)
您的第一项是字符串,正如错误中所述。您的函数需要实际指定函数:
list1 = [(f1, (arg1, arg2)),
(f2, (arg1,)),
(f3, (arg1, arg2, arg3))]
for i in list1:
i[0](*i[1])
目前,您列出的不是函数本身,而是列出了通过调用它们返回的输出。
我不确定你的用例,所以这可能不是达到你真正想要的最佳方式,但是这个稍微凌乱的解决方案应该可行。