Python - 运行 以列表项作为参数的函数

Python - Run function with list item as parameter

我想要 运行 一个函数列表,其中每个函数应该从列表中获取一个项目作为参数。

Func1 参数取第一个列表值,Func2 参数取第二个列表值...依此类推。

到目前为止,我有以下内容:

main.py

#import the 5 python files
import sheet_1 as s1
import sheet_2 as s2
import sheet_3 as s3
import sheet_4 as s4
import sheet_5 as s5

#save the functions in a list
func_lst = [s1.func1, s2.func2, s3.func3, s4.func4, s5.func5] 

#save workbook key as list
sheet_lst = ["Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5"]

sheet_1.py

def sheet1(n): #n param should take "Sheet1"
    print(n*2) #prints "Sheet1Sheet1"

sheet_2.py

def sheet2(n): #n param should take "Sheet2"
    print(n*2) #prints "Sheet2Sheet2"

sheet_3.py

def sheet3(n): #n param should take "Sheet3"
    print(n*2) #prints "Sheet3Sheet3"

等等...

为了使其更加直观,代码应 look/work 如下所示:

#for first iteration
for item in sheet_lst:  #take "Sheet1"
for f in func_lst: #take s1.func1
        f(item) #run function with item parameter.

循环的最终结果将是:

s1.func1("Sheet1"); 
s2.func2("Sheet2"); 
s3.func3("Sheet3"); 
s4.func4("Sheet4"); 
s5.func5("Sheet5");

有人知道如何构造循环吗?

提前致谢!

使用 zip 生成您描述的循环

for wbkey, f in zip(sheet_lst, func_lst):
   f(wbkey)

以上结果为:

s1.func1("Sheet1"); 
s2.func2("Sheet2"); 
s3.func3("Sheet3"); 
s4.func4("Sheet4"); 
s5.func5("Sheet5");