투케이2K

33. (python/파이썬) 배열 (array) 깊은 복사 (deep) , 얕은 복사 (copy) 수행 실시 본문

Python

33. (python/파이썬) 배열 (array) 깊은 복사 (deep) , 얕은 복사 (copy) 수행 실시

투케이2K 2022. 7. 20. 07:57

[개발 환경 설정]

개발 툴 : SublimeText (PyScript)

개발 언어 : python

 

[소스 코드]

<!DOCTYPE HTML>
<html lang="ko">
<head>
    <title>WebTest</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">



    <!-- [pyScript 사용 관련 CDN 설정 실시] -->
    <link rel="stylesheet" href="https://pyscript.net/alpha/pyscript.css" />
    <script defer src="https://pyscript.net/alpha/pyscript.js"></script>




    <!-- 
    // -----------------------------------------
    [요약 설명]
    // -----------------------------------------
    깊은 복사 : 새로운 객체를 생성한 후 독립적인 원본 데이터를 채웁니다
    // -----------------------------------------
    얕은 복사 : 새로운 객체를 생성한 후 참조할 수 있는 데이터를 채웁니다
    // -----------------------------------------
    차이점 : [원본 수정 시]
      
      - 깊은 복사 : 원본이 수정 되어도 복사된 배열은 독립된 값을 유지합니다
      - 앝은 복사 : 원본이 수정 되면, 참조하는 값이 변경되어 얕은 복사 배열도 변경됩니다
    // -----------------------------------------
     -->




    <!-- [pyScript 구문 정의 실시] -->
    <py-script>
        from copy import deepcopy

        print("=====================================")
        print("[main start]")
        print("=====================================")


        # [초기 변수 및 데이터 선언 실시]
        origin_Array = [1, [2, 3, 4]]
        deep_Array = deepcopy(origin_Array) 
        simple_Array = origin_Array.copy()


        # [각 배열에 할당된 id 확인]
        origin_Id = id(origin_Array)
        deep_Id = id(deep_Array)
        simple_Id = id(simple_Array)


        # [원본 데이터 수정 실시]
        origin_Array[1].append("또만나")


        # [결과 출력 실시]
        print("origin_Array : {}".format(origin_Array))
        print("deep_Array : {}".format(deep_Array))
        print("simple_Array : {}".format(simple_Array))
        print("origin_Id : {}".format(origin_Id))
        print("deep_Id : {}".format(deep_Id))
        print("simple_Id : {}".format(simple_Id))

    </py-script>
    
</head>





<!-- [body 콘텐츠 작성] -->
<body>
</body>


</html>
 

[결과 출력]


 

반응형
Comments