-2
我给出如下定义的函数:迭代列表,字典等的组合调用的函数递归
def func(dframe, string1, str2, timedel1, bool1, dict1, dict2):
...
我想与下面的输入反复调用这个函数:
dframe = dframe
string1 = 'Cars'
str2_list = ['Mercedes', 'BMW', ...]
timedelArg_list = ['seconds=1', 'seconds=2', 'mintues=2', ...]
bool1 = False
dict1_list = [['Mercedes_color': 'black'],
['BMW_color': 'white']]
dict2_list = ['Mercedes_price', 'BMW_price', ...]
我可以控制这些输入的组织方式,但不能控制func
。
每个func
调用看起来如下:
# First Call
dframe = func(dframe, string1, str2_list[0],
timedelta(timedelArg_list [0]),
bool1 = bool1,
dict1 = {'FIXED1':dict1_list[0][0], 'FIXED2':dict1_list[0][1]},
dict2 = {dict2_list[0]:'FIXED3'})
# Second Call
dframe = func(dframe, string1, str2_list[1],
timedelta(timedelArg_list [1]),
bool1 = bool1,
dict1 = {'FIXED1':dict1_list[1][0], 'FIXED2':dict1_list[1][1]},
dict2 = {dict2_list[1]:'FIXED3'})
# Third Call
dframe = func(dframe, string1, str2_list[2],
timedelta(timedelArg_list [2]),
bool1 = bool1,
dict1 = {'FIXED1':dict1_list[2][0], 'FIXED2':dict1_list[2][1]},
dict2 = {dict2_list[2]:'FIXED3'})
...
什么是最优雅的方式来做到这一点。
目前还不清楚你在问什么。如果你不能控制'func',这不是你能做的唯一方法吗......不管你在做什么? – jonrsharpe
感谢您的评论@jonsharpe。相比于我在下面提供的解决方案,如果存在更多pythonic方式,我就是这样。可能会使用'ast'库 – Rahul