栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Python-了解dict.copy()-浅还是深?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python-了解dict.copy()-浅还是深?

“浅复制”表示字典的内容不是按值复制,而只是创建一个新引用。

>>> a = {1: [1,2,3]}>>> b = a.copy()>>> a, b({1: [1, 2, 3]}, {1: [1, 2, 3]})>>> a[1].append(4)>>> a, b({1: [1, 2, 3, 4]}, {1: [1, 2, 3, 4]})

相反,深拷贝将按值复制所有内容。

>>> import copy>>> c = copy.deepcopy(a)>>> a, c({1: [1, 2, 3, 4]}, {1: [1, 2, 3, 4]})>>> a[1].append(5)>>> a, c({1: [1, 2, 3, 4, 5]}, {1: [1, 2, 3, 4]})

所以:

  1. b = a
    :参考分配,制造a并b指向同一对象。

‘a = b’的图示:’a’和’b’都指向’{1:L}’,’L’指向’[1、2、3]。

  1. b = a.copy()
    :浅拷贝,a并且b将成为两个独立的对象,但其内容仍共享相同的参考

‘b = a.copy()’的图示:’a’指向’{1:L}’,’b’指向’{1:M}’,’L’和’M’都指向’[ 1,2,3]”。

  1. b = copy.deepcopy(a)
    :深度复制,a并且b的结构和内容变得完全孤立。

‘b = copy.deepcopy(a)’的图示:’a’指向’{1:L}’,’L’指向’[1、2、3]’; ‘b’指向’{1:M}’,’M’指向’[1,2,3]’的另一个实例。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/637238.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号