1. ホーム
  2. パイソン

[解決済み] リストの追加におけるPythonの再帰性

2022-03-04 13:55:10

質問

リストに再帰的に追加したいのですが、うまくいく関数が思いつきません。この関数は2つの引数を取ります。 timesdata . times は追記する回数にします。

ここまでが私のコードです。

def replicate_recur(times, data):
    result2 = []
    if times == 0:
        result2.append(data)
    else:
        result2.append(data)
        replicate_recur(times - 1, data)
    return result2

解決方法は?

を使用することができます。 xrange コーディングのテストでない限り、再帰を使用する意味はありません。

def replicate(times, data):
    result2 = []
    for i in xrange(times):
        result2.append(data)
    return result2

同じ関数を再帰的に書くと、次のようになります。

def replicate_recur(times, data, listTest=None):
    # If a list has not been passed as argument create an empty one
    if(listTest == None):
        listTest = []
    # Return the list if we need to replicate 0 more times
    if times == 0:
        return listTest
    # If we reach here at least we have to replicate once
    listTest.append(data)
    # Recursive call to replicate more times, if needed and return the result
    replicate_recur(times-1, data, listTest)
    return listTest