.赋值深浅复制

1.字符串(数字):在内存中是一次性创建的,不能直接修改,如需修改,需要重新创建2.列表等可修改的数据类型:在内存中创建时是以链表的形式创建3.字符串、数字:赋值、深浅拷贝都没有意义,因为其永远指向同一个内存地址

定义如下列表:

li = [1, 2, 3]

l2 = [‘a’, li]

浅复制:

l3 = l2.copy()

深复制:

import copy

l4 = copy.deepcopy(l2)

图1 赋值

k1、k2、k3是第一层,k3下一层的0、1是第二层

图2 浅拷贝

图3 深拷贝

实例

# 赋值:只是创建一个变量,该变量指向原来的内存地址

n1 = {"k1": 'fei', "k2": 1235, "k3": ["fly", 19]}

n2 = n1 # 赋值

n1["k1"] = "刘波奇" # 修改第一层k1

print(n1)

print(n2)

n1["k3"][0] = "李日纯" # 通过下标0,修改第二层k3

print(n1)

print(n2)

输出结果:

{'k1': '刘波奇', 'k2': 1235, 'k3': ['fly', 19]}

{'k1': '刘波奇', 'k2': 1235, 'k3': ['fly', 19]}

{'k1': '刘波奇', 'k2': 1235, 'k3': ['李日纯', 19]}

{'k1': '刘波奇', 'k2': 1235, 'k3': ['李日纯', 19]}

# 浅复制:在内存中只额外的创建第一层数据

import copy #导入copy 模块

n1 = {"k1": 'fei', "k2": 1235, "k3": ["fly", 19]}

n3 = copy.copy(n1)

n1["k1"] = "张月兰"

print(n1)

print(n3)

n1["k3"][0] = "陈马斯"

print(n1)

print(n3)

结果:

{'k1': '张月兰', 'k2': 1235, 'k3': ['fly', 19]}

{'k1': 'fei', 'k2': 1235, 'k3': ['fly', 19]}

{'k1': '张月兰', 'k2': 1235, 'k3': ['陈马斯', 19]}

{'k1': 'fei', 'k2': 1235, 'k3': ['陈马斯', 19]}

可以看出当浅拷贝时,改变新的字典时,原来的字典的值也会改变也就是说对于浅拷贝,内存两个变量下值的内存地址是相同的

# 深拷贝

import copy #导入copy 模块

n1 = {"k1": 'fei', "k2": 1235, "k3": ["fly", 19]}

n4 = copy.deepcopy(n1)

n1["k1"] = "黄依馨"

print(n1)

print(n4)

n1["k3"][0] = "杨艺衡"

print(n1)

print(n4)

结果:

{'k1': '黄依馨', 'k2': 1235, 'k3': ['fly', 19]}

{'k1': 'fei', 'k2': 1235, 'k3': ['fly', 19]}

{'k1': '黄依馨', 'k2': 1235, 'k3': ['杨艺衡', 19]}

{'k1': 'fei', 'k2': 1235, 'k3': ['fly', 19]}

对于深拷贝而言,只是值相等,但是内存地址是不同的,改变新的字典中的值,原来字典中的值是不会变化的。

总结:

1:对于不可变对象(如数字或者是字符串),无论是深拷贝还是浅拷贝,内存地址和值都是相同的,没有意义;

2:对于可变的对象,如列表元组,字典类型的:

浅拷贝:值和地址都是相同的

深拷贝:值相同,地址不同

python语言的基本数据类型_python语言基本数据类型-深浅拷贝相关推荐

  1. python官方的扩展索引_Python列表操作与深浅拷贝(6)——列表索引、查询、修改、扩展...

    列表list定义 L1 =[] L2= [1,2,'abc'] L3=list() L4= list(range(5)) L5= [1,'abc',True,None,[4,5,'abc'],str] ...

  2. python语言数据类型_Python中的数据类型 | 萧小寒

    摘要 Python3中提供有六个标准的数据类型:Number(数字).String(字符串).List(列表).Tuple(元组).Sets(集合).Dictionary(字典). 在这些数据类型中, ...

  3. python语言程序的特点_Python语言有哪些优点?

    2018年主流的十大编程语言中,Python排名第一,被广大使用者誉为"更美好"编程语言.Python语言自身的语言特点,使得他深受开发者的喜爱,那么Python语言到底有哪些优点 ...

  4. python语言的类型是_Python语言类型

    Python是一门动态解释型的强类型语言. 对这句话进行解析,语言分为动态的和静态的,编译型和解释型的,强类型的和弱类型的语言之分. 下面对三种不同维度的类型的语言进行解释: 1.编译型和解释型 差别 ...

  5. python语言基础项目报告书_Python语言基础01-初识Python

    1. Python简介 1.1 Python的历史 Python的创始人为吉多·范罗苏姆(荷兰语:Guido van Rossum) 1989年的圣诞节期间:吉多·范罗苏姆为了在阿姆斯特丹打发时间,决 ...

  6. python语言程序的特点_Python语言概述及其运行机制详解

    即日起,我们将打开一个新的编程世界的大门--Python语言.Python是一种跨平台的计算机程序设计语言.是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新 ...

  7. python语言的优缺点论文_Python语言的优缺点是什么呢?

    Python这门语言的魅力和影响力已经远超Java.C.C++等编程语言前辈,主流的十大编程语言中,Python排名第一.被广大使用者誉为"更美好"编程语言.也常常被昵称为&quo ...

  8. python语言包括哪些实现_Python语言基础考察点:python语言基础常见考题(一)

    一.python是静态还是动态类型?是强类型还是弱类型? 1.动态强类型语言(不少人误以为是弱类型) 不要傻傻分不清 2.动态还是静态指的是编译期还是运行期确定类型 3.强类型指的是不会发生隐式类型转 ...

  9. python做算法题优势_Python语言在科学算法中的优势

    2019 年第 4 期 信息与电脑 China Computer & Communication 算法语言 Python 语言在科学算法中的优势 刘 瑞 (辽宁师范大学海华学院,辽宁 沈阳 1 ...

  10. python属于计算机几级_Python语言不仅纳入计算机等级考试科目,还纳入高考科目...

    全国计算机等级考试纳入Python 教育部考试中心于2017年10月11日发布了"关于全国计算机等级考试(NCRE)体系调整"的通知,决定对NCRE考试体系进行调整,自2018年3 ...

最新文章

  1. 爱因斯坦梦断“大统一理论”
  2. 如果没有了Redis...
  3. IBM沃森为存储系统开发人员带来的启发
  4. linux 拨号网关,用LINUX做在一张软盘上的拨号网关 (转)
  5. ::在sql语句中是什么写法_不懂就问:SQL 语句中 where 条件后 写上1=1 是什么意思...
  6. centsos7修改主机名 [root@st152 ~]# cat /etc/hostname
  7. ElasticSearch2.1 基于空间位置geo_query距离计算
  8. mysql 索引 范围扫描_MySql学习笔记(六):扫描范围
  9. html + css + js 实现一个打字小游戏(建议收藏)
  10. 输出100以内的所有素数
  11. 深度学习入门学习路线及好课推荐
  12. 【工具】我的键盘(机械键盘)快捷键设置
  13. android壁纸背景,android – 选择动态壁纸的背景
  14. 均值不等式中考_中考数学解题技巧方法
  15. Linux-京东字节百度提前批,一面二面都被问到了awk——实例篇(3)查进程,kill指定进程
  16. 【功能安全】【ISO26262】整体介绍
  17. 计算机网络应用底纹怎么弄,Word文档如何设置字符底纹?
  18. 5G时代,云计算发展的五大新趋势
  19. 【报告分享】2022百度职业资格考试培训行业洞察-百度营销研究院(附下载)
  20. 笔记本计算机忘记密码,Windows笔记本电脑忘记开机登录密码忘记怎么办 最新win7/8/10开机密码重置教程...

热门文章

  1. PHP面试题(二)---百度
  2. iOS 点击返回键崩溃的未解之谜
  3. UIScrollView 遇到的小坑
  4. EL属性范围用法sessionScope等(转)
  5. 解决 spring cloud git config 配置中心多环境问题
  6. 分布式事务解决方案总结
  7. mysql redolog日志
  8. FusionCharts破解方法
  9. Dynamics CRM 2013 初体验(5):Business Rule
  10. 药品缺陷检测中的机器视觉技术