簡體   English   中英

通過函數中的引用傳遞不需要的列表

[英]Unwanted List pass by Reference in Function

我有以下代碼:

import scipy
import scipy.linalg

def LU(A):
    n = scipy.shape(A)[0]
    U = A
    L = scipy.identity(n)

    for j in range(1,n):
        for i in range(j+1,n+1):
            L[i-1,j-1] = U[i-1,j-1]/U[j-1,j-1]
            for k in range(j,n+1):
                U[i-1,k-1] = U[i-1,k-1] - L[i-1,j-1] * U[j-1,k-1]
    return L,U


a = scipy.matrix([[1.0,1.0],[2.0,1.0]])
L,U = LU(a)
print L
print U
print a
print scipy.dot(L,U)

我如何通過LU()中的U指向A所在的位置並通過更改U也更改A來通過引用來修復不必要的傳遞。

您可以通過立即進行復制來防止對A進行修改:

import copy

def LU(A):
    n = scipy.shape(A)[0]
    U = copy.deepcopy(A)
    L = scipy.identity(n)
    # ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM