1

私の質問は、私は次のような機能を持っているということです:

def myfunc(a):
    b=[]
    b.append(a)
    return myfunc(a-1), b*

*= これにより関数が壊れることは承知していますが、関数を実行し続けながら、使用した値で更新
できるようにする方法はありますか? 質問が関係するコードは最大値です。問題。だから私は重みと値のリストと最大値を持っています. 許容重量。私の関数は最大問題を検出しませんが、そこに到達するために使用している値を確認したいと思います。つまり、w=[1,2,3] v=[4,7,2] max weight= 3、max val = 11 です。自分の関数を編集で表示したいのは、weights used=[1 などのリストです。 ,2] および使用される値 = [4,7]。実際のコードが投稿されていないことをお詫びします。サイトで許可されていません。ba

4

2 に答える 2

2

デフォルトの引数を使用することをお勧めします。

def myfunc(a, lst=None):
    if lst is None:
        lst = []
    lst.append(a)
    if a > 0:
        myfunc(a-1, lst)
    return lst

print(myfunc(5))  # prints: [5, 4, 3, 2, 1, 0]
于 2012-04-24T03:09:45.713 に答える
1

つまり、このようなものですか?

def myfunc(a):
    if a == 0:
        return [a]
    return myfunc(a-1) + [a]

myfunc(5)

> [0, 1, 2, 3, 4, 5]
于 2012-04-24T02:47:14.107 に答える