python与basic优劣_Python basic系列06-深和浅拷贝,python,基础,深浅

#python 基础系列06-深浅拷贝

#引入sys库

import sys

import copy

if __name__ == '__main__':

a,b,c =1,2,3

list1 = [1,2,3,4,5]

list2 = [1,2,3,4,5]

list2 = list1

list1[0] ='a'

print(list1,list2) #['a', 2, 3, 4, 5] ['a', 2, 3, 4, 5]

#实现拷贝,而不是内存指向相同的地址

list3 = [1, 2, 3, 4, 5]

list4 = [1, 2, 3, 4, 5]

list4 = list3[:]

list3[0] = 'xxx'

print(list3,list4) #['xxx', 2, 3, 4, 5] [1, 2, 3, 4, 5]

#但是存在浅拷贝,嵌套数据没有还是会跟着改变

list6 = [1, 2, 3, 4,[7,8]]

list7 = [1, 2, 3, 4,[7,8]]

list7 = list6[:]

list6[0] = 'bbb'

list6[4][0] = 'zzzz'

print(list6,list7) #['bbb', 2, 3, 4, ['zzzz', 8]] [1, 2, 3, 4, ['zzzz', 8]]

#实现全部拷贝,引入copy模块

s1 = [1, 2, 3, 4,[7,8]]

s2 = [1, 2, 3, 4,[7,8]]

s2 = copy.deepcopy(s1)

s1[-1][0] ='vvvv'

s1[0] ='12a'

print(s2) #[1, 2, 3, 4, [7, 8]]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值