900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > python 深浅拷贝案例_python-浅拷贝 深拷贝实例以及讲解

python 深浅拷贝案例_python-浅拷贝 深拷贝实例以及讲解

时间:2022-04-17 15:44:08

相关推荐

python 深浅拷贝案例_python-浅拷贝 深拷贝实例以及讲解

# 1、浅拷贝 与 深拷贝 列表

import copy

a = [11, 22]

b = [33, 44]

c = [a, b]

d = c

e = copy.copy(c) # 浅拷贝

f = copy.deepcopy(c) # 深拷贝

a.append([55])

print(a, c, e, f)

print('a的id是{}, b的id是{}'.format(id(a), id(b)))

print('c的id是{}, c[0]的id是{}, c[1]的id是{}'.format(id(c), id(c[0]), id(c[1])))

print('d的id是{}, d[0]的id是{}, d[1]的id是{}'.format(id(d), id(d[0]), id(d[1])))

print('e的id是{}, e[0]的id是{}, e[1]的id是{}'.format(id(e), id(e[0]), id(e[1])))

print('f的id是{}, f[0]的id是{}, f[1]的id是{}'.format(id(f), id(f[0]), id(f[1])))

# 浅拷贝:只拷贝变量c 赋值给e 里面的变量a,b 不进行拷贝

# 深拷贝: 拷贝变量c以及里面里面的a,b 赋值给 f

# 2、浅拷贝 与 深拷贝 元组

import copy

a = (11, 22)

b = (33, 44)

c = (a, b)

d = c

e = copy.copy(c) # 浅拷贝

f = copy.deepcopy(c) # 深拷贝

print('a的id是{}, b的id是{}'.format(id(a), id(b)))

print('c的id是{}, c[0]的id是{}, c[1]的id是{}'.format(id(c), id(c[0]), id(c[1])))

print('d的id是{}, d[0]的id是{}, d[1]的id是{}'.format(id(d), id(d[0]), id(d[1])))

print('e的id是{}, e[0]的id是{}, e[1]的id是{}'.format(id(e), id(e[0]), id(e[1])))

print('f的id是{}, f[0]的id是{}, f[1]的id是{}'.format(id(f), id(f[0]), id(f[1])))

# 因为元组是不可变类型,如果要是拷贝元组就是引用指向了

# 3、浅拷贝 与 深拷贝 元组里面包含列表

import copy

a = [11, 22]

b = [33, 44]

c = (a, b)

d = c

e = copy.copy(c) # 浅拷贝

f = copy.deepcopy(c) # 深拷贝

print('a的id是{}, b的id是{}'.format(id(a), id(b)))

print('c的id是{}, c[0]的id是{}, c[1]的id是{}'.format(id(c), id(c[0]), id(c[1])))

print('d的id是{}, d[0]的id是{}, d[1]的id是{}'.format(id(d), id(d[0]), id(d[1])))

print('e的id是{}, e[0]的id是{}, e[1]的id是{}'.format(id(e), id(e[0]), id(e[1])))

print('f的id是{}, f[0]的id是{}, f[1]的id是{}'.format(id(f), id(f[0]), id(f[1])))

# 拷贝拥有 不可变类型的数据为最顶层,那么浅拷贝就变成了引用指向,深拷贝还是深拷贝

# 4、浅拷贝 与 深拷贝 切片c[:]

a = [11, 22]

b = [33, 44]

c = [a, b]

e = c[:]

print('a的id是{}, b的id是{}'.format(id(a), id(b)))

print('c的id是{}, c[0]的id是{}, c[1]的id是{}'.format(id(c), id(c[0]), id(c[1])))

print('e的id是{}, e[0]的id是{}, e[1]的id是{}'.format(id(e), id(e[0]), id(e[1])))

# [:]的性质和浅拷贝一样

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。