Mathematicaユーザーとして、私は自動的に「リストをスレッド化」する関数が好きです(Mathematicaの人々がそれを呼んでいるように、http://reference.wolfram.com/mathematica/ref/Listable.htmlを参照してください)。つまり、関数に単一の値ではなくリストが指定された場合、関数は自動的に各リストエントリを引数として使用し、結果のリストを返します。
myfunc([1,2,3,4]) -> [myfunc(1),myfunc(2),myfunc(3),myfunc(4)]
私はこの原則を次のようにPythonで実装しました。
def myfunc(x):
if isinstance(x,list):
return [myfunc(thisx) for thisx in x]
#rest of the function
これはそれを行うための良い方法ですか?この実装または戦略全体の欠点について考えてみてください。