>  기사  >  백엔드 개발  >  python3 목록의 깊은 복사와 얕은 복사를 위한 세 가지 방법

python3 목록의 깊은 복사와 얕은 복사를 위한 세 가지 방법

高洛峰
高洛峰원래의
2017-03-26 18:30:312134검색

이 글은 주로 Python3 목록의 깊고 얕은 복사 세 가지 방법에 대한 심층 분석을 제공합니다. 관심 있는 친구들이 참고할 수 있습니다.

# Auther: Aaron Fan

names = ["aaron", "alex", "james", "meihengfan"]

#复制一份列表

#浅复制 (注意,这只是一个浅复制,只能复制第一层列表里面的东西,如果列表里面还有一层列表,那么那一层的列表只是把物理地址指向过去了,但是并没有复制过来)
#在day2第9个视频,有详细讲这个浅复制的作用,这里不再详细注释

person = ["name", ["saving", 100]]

'''
浅复制的方法有3种:
p1 = person.copy()
p1 = person[:]
p1 = list(person)
'''

p1 = person[:]
p2 = person[:]
print(p1)
print(p2)


p1[0] = "alex"
p2[0] = "fengjie"
print(p1)
print(p2)

#注意第二层列别中的值同时变了,这里联合账号来理解浅复制的作用
p1[1][1] = 50
print(p1)
print(p2)


#深复制(这种复制属于完完全全的复制,可以把列表里面的列表也复制过来,而不是仅仅只是指向一个地址过去)
import copy
names2 = copy.deepcopy(names)

위 내용은 python3 목록의 깊은 복사와 얕은 복사를 위한 세 가지 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.