Python 3 copy (깊이 와 얕 은 복사 의 차이)
3418 단어 Python
http://blog.csdn.net/Rozol/article/details/71156387
다음 코드 는 Python 3.6.1 을 예 로 들 면 Less is more!
#!/usr/bin/env python
# coding=utf-8
__author__ = 'Luzhuo'
__date__ = '2017/5/3'
# copydemo.py copy
# :
# 1. : , ' ' 。
# 2. : , ' '
import copy
class Ls:
def __init__(self, name):
self.name = name
@property
def setname(self, name):
self.name = name
def __str__(self):
return self.name
__repr__ = __str__
def __iter__(self):
return self
list_0 = ["A", "B", ["C", "D"], Ls("E")]
def demo():
# --- ---
list_1 = copy.copy(list_0)
list_2 = list_0.copy()
list_3 = list_0[:]
list_4 = list(list_0)
# --- ---
lists_d = copy.deepcopy(list_0)
# --- ---
# 1.
list_0[0] = "X0"
list_1[0] = "X1"
list_2[0] = "X2"
list_3[0] = "X3"
list_4[0] = "X4"
lists_d[0] = "Xd"
# : ,
# list_0: ['X0', 'B', ['C', 'D'], E]
# list_1: ['X1', 'B', ['C', 'D'], E]
# list_2: ['X2', 'B', ['C', 'D'], E]
# list_3: ['X3', 'B', ['C', 'D'], E]
# list_4: ['X4', 'B', ['C', 'D'], E]
# list_d: ['Xd', 'B', ['C', 'D'], E]
# 2. list
list_0[2][0] = "Y0"
list_1[2][0] = "Y1"
list_2[2][0] = "Y2"
list_3[2][0] = "Y3"
list_4[2][0] = "Y4"
lists_d[2][0] = "Yd"
# : 0-1 , list ;
# list_0: ['X0', 'B', ['Y4', 'D'], E]
# list_1: ['X1', 'B', ['Y4', 'D'], E]
# list_2: ['X2', 'B', ['Y4', 'D'], E]
# list_3: ['X3', 'B', ['Y4', 'D'], E]
# list_4: ['X4', 'B', ['Y4', 'D'], E]
# list_d: ['Xd', 'B', ['Yd', 'D'], E]
# 3. Ls
list_0[3].name = "Z0"
list_1[3].name = "Z1"
list_2[3].name = "Z2"
list_3[3].name = "Z3"
list_4[3].name = "Z4"
lists_d[3].name = "Zd"
# :
# list_0: ['X0', 'B', ['Y4', 'D'], Z4]
# list_1: ['X1', 'B', ['Y4', 'D'], Z4]
# list_2: ['X2', 'B', ['Y4', 'D'], Z4]
# list_3: ['X3', 'B', ['Y4', 'D'], Z4]
# list_4: ['X4', 'B', ['Y4', 'D'], Z4]
# list_d: ['Xd', 'B', ['Yd', 'D'], Zd]
print("list_0: {}".format(list_0))
print("list_1: {}".format(list_1))
print("list_2: {}".format(list_2))
print("list_3: {}".format(list_3))
print("list_4: {}".format(list_4))
print("list_d: {}".format(lists_d))
if __name__ == "__main__":
demo()
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.