そのように説明する方が簡単なので、例を説明します。
リストまたは文字列のいずれかになる変数の数が不定 (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
ここでの目的は、関数をすべての入力変数で実行することです。そのうちの 1 つがリストの場合、リストの各項目に対して関数を実行する必要があります。したがって、必要な結果は、次のように、それらすべてに対して 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をエミュレートできるよりも1度複雑です=(
ご助力ありがとうございます。
回答後に編集:
回答ありがとうございますが、提案された解決策で問題が解決するかどうかはわかりません。実行すると:
helper_function(ListOfVariables)
次に、helper_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() の 2 番目の引数のみであるループも行います。
Var3 は単一のアイテムであるため、他の 2 つのループでは、この値に定数が割り当てられます。
それが望ましいものを得る方法です:
Function(a,c,e)
Function(a,d,e)
Function(b,c,e)
Function(b,d,e)
どうもありがとう、私はこれを自分で理解することはできません!