タプルまたはリストをさらに含むタプルの最大値を再帰的に見つける関数を記述しています。現在、コードは結果を追跡しますが、各再帰呼び出しが終了すると、サブリストまたはサブタプルの最大値が返されます。複合型のタプルで最大値を再帰的に見つける
グローバルmaxのみが返されるように変更するにはどうすればよいですか?私は各再帰呼び出しの終わりにリストに値を追加しようとしましたが、最後に値を返すことができませんでした。
現在、サンプルデータを使用して4,6,10、および20を返します。最後に20を返します。 編集:コードが機能し、各回答をリスト "結果"に追加し、最後に "結果"の最大値を返します。ここで
def maxInTuple(t):
results=[]
maxVal =0
_max_val(t, maxVal, results)
return max(results)
def _max_val(t, maxVal, results):
for c in t:
if type(c) != int:
_max_val(c, maxVal, results)
elif c > result
result =c
results.append(ans)
#return ans
print (maxInTuple(([2, 3, 4], (5, 6), [10, [4, 20]])))
'_max_val'は、あなたがそれを使用せず、それを上書きするのであれば、なぜ' result'パラメータを取るのですか? –
@ Professor_Joykill、もともと私はヘルパー関数でresult = 0を設定しましたが、各回帰呼び出しごとに0にリセットされるたびにresult = 0を設定しました。私は最初から0にしたいだけですが、私の論理は理にかなっていますか? – itsJana
'.append()'を使いたい場合、 'results()'リストの中で最大の値を返す 'return(max(results))'を実行する可能性があります。 –