파이썬과 얕은 차이는 전체 복사의 복사

첫째, 할당

alist = "A", "B", "C", [5,6], 10]
AA = alist
alist.append ( "유")
aa.append ( "IOP")
alist [3]으로 .Append (99 )
alist [3]으로 .Append ( "테스트")
인쇄 (alist)
인쇄 (AA)

다음과 같이 실행 결과는 다음과 같습니다

[ 'A', 'B', 'C', [5, 6, 99, '테스트', 10 '유', '안압']
[ 'A', 'B', 'C'[5 6, 99, '테스트', 10 '유', '안압']

할당 명령은 어떤 변수의 값을 수정하고, 두 변수 데이터 상호간에 전달되며, 다른 변수의 값에 영향을

 

둘째, 얕은 복사, 복사 ()

수입 사본

# 단순 복사본은 상기 소자의 내부 구성 요소의 어떠한 사본의 변화가 서로 영향을 미칠 것이다 내부 요소가없는

blist = "A", "B", "C", [5,6], 10]
BB = copy.copy (blist)
blist.append ( "하하")
bb.append (89)

blist [3]. APPEND ( "QE")
BB [3]으로 .Append (99)

인쇄 (blist)
인쇄 (BB)

결과 :

[90, 'B', ' C', [5,6 'QE', 99, 10 '하하'] #에 blist 추가 '하하'이 아닌 값 BB, blist 내부 소자의 수 [ 도 3은, 상기 BB BB [3] 내부 소자에 적용되는 'QE'를 첨가 하였다
[ 'A', 'B' , 'C', [5,6 'QE', 99, 10, 89] #BB 되지 blist 값 BB [3] (99) 내부에 추가 원소의 개수가 89을 첨가 blist의 blist [3] 내부 소자에 작용한다

셋째, 전체 복사

수입 사본

하위 요소를 포함 # 전체 복사본 서로 독립적으로 변화 각 요소의 사본
CLIST = "A", "B", "C", [5,6], 10]
CC = copy.deepcopy (CLIST)
CLIST 으로 .Append (90)
cc.append (100)

CLIST [3]으로 .Append (11)
CC [3]으로 .Append (10)

인쇄 (CLIST)
인쇄 (CC)

결과 :

[ 'A', 'B', 'C', [5, 6, 11, 10, 90]
[ 'A', 'B', 'C', [5, 6, 10, 10, 100]

사실, 외부 요소를 모두 복사 깊은 복사, 깊은 복사, 서로 영향을주지 않습니다, 두 변수의 값을 변경

 

추천

출처www.cnblogs.com/banxiade/p/12470241.html