我将解释这个例子,因为它更容易描述这种方式:
假设我们有未确定 (X) 数量的变量,可以是列表或字符串。
例如,X=3,我们有:
Var1=list("a","b")
Var2=list("c","d")
Var3="e"
所有这些都在一个列表中:ListOfVariables=[Var1,Var2,Var3]
然后我们有一个在这些变量上运行的函数(我们事先并不知道这个函数,但它使用了与我们拥有的相同数量 X 的变量)。
def Function(Var1,Var2,Var3)
print Var1
print Var2
print Var3
这里的目标是使函数与所有输入变量一起运行,如果其中一个是列表,它必须为列表的每个项目执行函数。所以想要的结果是为所有这些调用 Function ,如下所示:
Function(a,c,e)
Function(a,d,e)
Function(b,c,e)
Function(b,d,e)
到目前为止,我使用了一个辅助函数来识别 Var1、Var2 和 Var3,但是我的大脑没有那么多的递归可预测性,无法定义这个 HelperFunction,例如:
def HelperFunction():
for item in ListOfVariables:
if type(item).__name__=='list':
#This one will be done as a "for", so all the items in this list are executed as input (Var1 and Var2 in the example)
else:
#This item doesnt need to be included in a for, just execute once (Var3 in the example)
我知道它可以用 python 来完成,但我无法在脑海中编写我需要的函数,它比我的“大脑模拟器”可以模拟 python 的复杂程度高一倍 =(
非常感谢您的帮助。
回答后编辑:
非常感谢您的回答,但我不确定建议的解决方案是否能解决问题。如果我们运行:
helper_function(ListOfVariables)
那么 helper_function 应该调用函数“Function”4 次,如下所示:
Function(a,c,e)
Function(a,d,e)
Function(b,c,e)
Function(b,d,e)
目的是使用输入中的所有变量,但在函数需要的相应位置。更具体地说,helper_function(ListOfVariables) 的逻辑过程是:
Var1 是一个列表,因此,我将不得不遍历它的 contains 并使用它们运行 Function() ,但这些只会是函数的第一个参数!
Var2 是一个列表,因此,我也会循环,其中项目只是 Function() 的第二个参数
Var3 是单个项目,因此,对于其他两个循环,该值将被分配为常数。
这就是我们获得所需的方式:
Function(a,c,e)
Function(a,d,e)
Function(b,c,e)
Function(b,d,e)
非常感谢,我自己也搞不懂!