数値のリストと 2 つの整数 a と b を取り、リストのコピーを返す再帰関数を作成しようとしていますが、このコピーでは、引数として指定された数値のリスト内のすべての a が次のように置き換えられます。 b. このコードを書きましたが、シェルから実行した後、「なし」と表示されます (二重引用符なし)。
def replace(thelist,a,b):
assert type(thelist)==list, `thelist` + ' is not a list'
assert type(a)==int, `a` + ' is not an integer'
assert type(b)==int, `b` + ' is not an integer'
if len(thelist)==0:
return []
return ([b] if thelist[0]==a else [thelist[0]]).append(replace(thelist[1:],a,b))