Python 에서 얕 은 복사 와 깊 은 복사 deepcopy 의 간단 한 이해

1231 단어 pythoncopydeepcopy
다음은 개인 이 Python 깊이 복사 에 대한 통속 적 인 해석 으로 복잡 한 Python 데이터 구조 저장 소 를 피해 이해 하기 쉽 습 니 다!
  • 고급 언어 에서 변 수 는 메모리 와 주소 에 대한 추상 적 이 고 Python 의 모든 변 수 는 대상 입 니 다.
  • 변수의 저장 은 의 미 를 인용 하 는 방식 으로 한 변수의 값 에 대응 하 는 주소 정 보 를 저장 합 니 다.
  • 변수의 매번 초기 화(할당),새로운 내용 의 주 소 를 변수 에 부여 합 니 다.
  • 복잡 한 데이터 구 조 는 각 요소 의 저장 할 만 한 위치 이다.
  • 첨삭 수정 등 작업 을 할 때 데이터 자체 의 id 를 바 꾸 지 않 고 변 경 된 각 요소 의 주소 참조
  • 같은 id 를 가 진 변 수 를 변경 할 때 다른 같은 id 의 변 수 는 상응 하 게 변 합 니 다.
  • copy.copy(object)는 내장 구조의 주소 참조 로 내장 구조 가 변화 할 때 얕 은 복사 에 해당 하 는 변화 입 니 다.
  • copy.deepcopy(object),변수 와 관련 된 데 이 터 를 완전히 복사 합 니 다!다른 조작 과 는 더 이상 관계 가 없다!
  • 실례:
    
    import copy
    li = [4,5]
    lts = [1,2,3,li]
    lt_copy= copy.copy(lts)
    lt_deepcopy = copy.deepcopy(lts)
    lts.append(6)
    lt_copy.append(7)
    print(lts,lt_copy)  #  [1, 2, 3, [4, 5], 6] [1, 2, 3, [4, 5], 7]
    li.append(8)     #    li  
    print(lts,lt_copy,lt_deepcopy)
    #  [1, 2, 3, [4, 5, 8], 6] [1, 2, 3, [4, 5, 8], 7] [1, 2, 3, [4, 5]]
    #      li   ,lt_deepcopy    !
    총결산
    이상 은 이 글 의 모든 내용 입 니 다.본 고의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가 치 를 가지 기 를 바 랍 니 다.여러분 의 저희 에 대한 지지 에 감 사 드 립 니 다.더 많은 내용 을 알 고 싶다 면 아래 링크 를 보 세 요.

    좋은 웹페이지 즐겨찾기