2
我試圖遞歸調用一個函數,並將部分列表傳遞給該函數。python函數更改列表值
def op3(c,i):
d = []
for l in range(0,len(c),+1):
d.append(c[l])
a, b = [], []
if len(d)>=3:
for l in range(1,len(d)-1,+1):
a.append(d[l])
for l in range(2,len(d),+1):
b.append(d[l])
A,B = [],[]
for j in range(0,len(a),+1):
a[j][i] = a[j][i]+a[j][i+1]
a[j].pop(i+1)
insertf(a,final)
A.append(a[j])
op3(A,i+1)
for k in range(0,len(b),+1):
b[k][i+1] = b[k][i+1]+b[k][i+2]
b[k].pop(i+2)
insertf(b,final)
B.append(b[k])
op3(B,i+1)
但是,在第一個嵌套'for'循環運行後,原始列表中的值在列表'b'中更改爲d的新值。 我相當新的python。我已經讀過,這只是如何在python中工作。有沒有解決的辦法?
使用不可變的數據結構,就像'tuple'?或'newList = copy.deepcopy(otherList)'創建一個完全獨立的列表? –
如果不是詢問您的解決方案,而是詢問您嘗試使用該功能解決的實際問題,您將收到更多有用的答案。參見[XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)。 – Bakuriu