>  기사  >  백엔드 개발  >  Python의 깊은 복사와 얕은 복사에 대한 간단한 설명(코드 포함)

Python의 깊은 복사와 얕은 복사에 대한 간단한 설명(코드 포함)

不言
不言앞으로
2018-10-27 16:03:551951검색

이 기사는 Python의 깊고 얕은 복사에 대한 간단한 설명을 제공합니다(코드 포함). 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

검토하고 얕은 사본을 만드세요.

위 코드:

# -*- coding: utf-8 -*-
"""
Created on Thu Sep 20 14:18:48 2018

@author: Lenovo
"""

import copy,json

a={"ab":1,"cd":{"ef":2},"gh":[1,2,3]}
print "a1:",a

b=dict(a["cd"])
c=copy.copy(a)
d=copy.deepcopy(a)
e=a["cd"]
a["cd"]["xy"]=3
a["fx"]=5
a["cd"]["ef"]=20
print "a2:",a
print "b :",b
print "c :",c
print "d :",d
print "e :",e

결과:

a1: {'gh': [1, 2, 3], 'ab': 1, 'cd': {'ef': 2}}
a2: {'gh': [1, 2, 3], 'fx': 5, 'ab': 1, 'cd': {'xy': 3, 'ef': 20}}
b : {'ef': 2}
c : {'cd': {'xy': 3, 'ef': 20}, 'ab': 1, 'gh': [1, 2, 3]}
d : {'cd': {'ef': 2}, 'ab': 1, 'gh': [1, 2, 3]}
e : {'xy': 3, 'ef': 20}

결과에서 볼 수 있습니다.

dict() 명령은 새 사전을 생성합니다.

"="할당은 "참조" 개념을 사용하는 것과 동일합니다. copy .copy는 복사된 정보를 수정하면 그에 따라 수정됩니다. 복사되지 않은 다른 정보를 추가하거나 수정하면 얕은 복사 개체는 수정되지 않습니다.

예: 범위 c 복사본의 키는 "gh", "ab", "cd" 세 개의 키가 있습니다. 이 세 키의 값을 수정하면 복사된 객체도 그에 따라 수정됩니다. "fx" 키를 추가하면 복사된 개체가 수정되지 않습니다.

copy.deepcopy는 완전히 새로운 객체를 생성하는 깊은 복사본입니다.

위 내용은 Python의 깊은 복사와 얕은 복사에 대한 간단한 설명(코드 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 csdn.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제