함수를 재귀 적으로 호출하고 목록의 일부를 함수에 전달하려고합니다.파이썬 함수가 목록 값을 변경합니다.
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)
그러나 일본어 목록의 값은 루프가 실행 '대'중첩 된 후 제 (D)의 새로운 값리스트에서 'B'를 변경된다. 저는 파이썬을 처음 접했습니다. 나는 이것이리스트가 어떻게 파이썬에서 작동 하는지를 읽었다. 이 문제를 해결할 방법이 있을까요?
'튜플'과 같은 불변의 데이터 구조를 사용합니까? 또는'newList = copy.deepcopy (otherList)'를 사용하면 완전히 별개의 목록을 만들 수 있습니까? –
솔루션에 대해 묻는 대신, 해당 기능으로 해결하려는 실제 문제에 대해 질문하면 훨씬 더 유용한 대답을 얻을 수 있습니다. [XY 문제] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)를 참조하십시오. – Bakuriu