比如
def func(a,b,n):
a的n列用b替换
d=[[1,2],[3,4]]
d1=[5,5]
func(d,d1,0)
func(d,d2,1)
我想d重复用,但总是被修改,函数传递数组时,是用引用。
这里你不能重复引用,你可以用另一个数组 copy 一个d的备份,然后再做你的 替换操作
温馨提示:答案为网友推荐,仅供参考
第1个回答 2019-03-26
函数中你用c=a[:]创建一个c作为a的副本,然后对c做替换操作,最后return c,那么a的值就不会变了,本回答被网友采纳
第2个回答 2019-03-25
你好,你可以考虑不用引用
a = b[:] ,这样的话,a就不跟b变化了。追问
a = b[:] ,这样的话,a就不跟b变化了。追问
def tiHuan(a,b,j):
a0 = []
a0 = a[:]
for i in range(len(a)):
a0[i][j] = b[i]
r = a0[:]
return r
def qiuJie(d,b):
jie = []
for i in range(len(d)):
d0 = []
d0 = d[:]
print('d = ',d)
print('dx = ',d0)
print(tiHuan(d0,b,i))
return jie
if __name__ == '__main__':
d = [[1,2,3],
[3,2,1],
[2,1,5]]
d0 = [6,7,8]
print("求解为:",qiuJie(d,d0))
用过你说的方法,但还是会被修改。