Python - Запуск функции с элементом списка в качестве параметра - PullRequest
0 голосов
/ 15 апреля 2020

Я хочу запустить список функций, где каждая функция должна взять один элемент из списка в качестве параметра.

Параметр 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"

И так далее ...

Чтобы сделать код более наглядным, вот как код должен выглядеть / работать так:

#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.

Конечный результат l oop будет:

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

Кто-нибудь знает, как структурировать l oop ?

Заранее спасибо!

1 Ответ

1 голос
/ 15 апреля 2020

Используйте zip , чтобы произвести все oop, как вы описываете

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");
...