반응형
파이썬에 아주 이상한 간단한 문제가 있습니다.
def estExt(matriz,erro):
# (1) Determinar o vector X das soluções
print ("Matrix after:");
print(matriz);
aux=matriz;
x=solucoes(aux); # IF aux is a copy of matrix, why the matrix is changed??
print ("Matrix before: ");
print(matriz)
...
아래에서 볼 수 있듯이 aux
가 solucoes ()
함수에 의해 변경되는 항목 임에도 불구하고 matriz
행렬이 변경됩니다.
이전 매트릭스 :
[[7, 8, 9, 24], [8, 9, 10, 27], [9, 10, 8, 27]]
이후 매트릭스 :
[[7, 8, 9, 24], [0.0, -0.14285714285714235, -0.2857142857142847, -0.42857142857142705],
[0.0, 0.0, -3.0, -3.0000000000000018]]
해결 방법
라인
aux=matriz;
matriz
의 복사본을 만들지 않고 aux
라는 이름의 matriz
에 대한 새 참조를 만듭니다. 당신은 아마 원합니다
aux=matriz[:]
aux = copy.deepcopy(matriz)
제쳐두고, 각 문 뒤에 세미콜론이 필요하지 않으며, 파이썬은 그들을 EOL 마커로 사용하지 않습니다.
참조 페이지 https://stackoverflow.com/questions/8122627
반응형
'파이썬' 카테고리의 다른 글
파이썬 TypeError : 'float'개체는 반복 할 수 없습니다. (0) | 2020.09.26 |
---|---|
파이썬 Python : 목록에서 문자열의 하위 문자열을 확인하는 방법은 무엇입니까? (0) | 2020.09.26 |
파이썬 Python에서 YAML 파일을 구문 분석하고 데이터에 액세스합니까? (0) | 2020.09.25 |
파이썬 Python의 bz2 모듈은 기본적으로 컴파일되지 않습니다. (0) | 2020.09.25 |
파이썬 matplotlib 3d 플롯 종횡비를 설정 하시겠습니까? (0) | 2020.09.25 |
댓글