私は関数f(a、b)を書いています。構造は次のとおりです。Pythonで関数のマップを使う際の助けが必要
def f(a, b):
global result
def g(a, b):
global result
return result
deg h(a):
return a # an updated a
g(a, b)
a = h(a)
g(a, b)
a = h(a)
g(a, b)
a = h(a)
g(a, b)
return result
- あなたは私は2つのサブ機能
g(a, b)
とf(a, b)
でh(a)
を持っていることがわかります。 - 私は結果を更新するために、もう一度
g(a, b)
を実行できるように、そして、私はa
- を更新
- 部分的な結果を得るために
g(a, b)
を実行する必要があります。 g(a, b)
の4回の実行の後、私は結果の完全な部分を得て、値を返します。
ここでは、プロセスをよりシンプルに見えるように構成する方法が必要です。
私も試してみました:
g(a, b)
g(h(a), b)
g(h(h(a), b)
g(h(h(h(a), b)
そして、それは同様に恐ろしい見えます。
map()やその他の高次関数を使用することを提案する必要がありますか?しかし、私はそれを理解できませんでした。
ありがとうございます!
'map'は高次関数とは関係ありません。 – alfasin
'グローバル結果 'の目的は何ですか?なぜ 'g'関数が返す値を保存していないのですか?そしてなぜあなたはそれを渡す引数で 'g'が何もしないのですか? –
グローバル変数の代わりに関数の戻り値を使うことを考えましたか?その後、単純なforループで4回実行します。 –