iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python基础详解之列表复制
  • 419
分享到

Python基础详解之列表复制

2024-04-02 19:04:59 419人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录一、前言二、直接赋值三、用切片赋值四、copy()复制实现赋值五、deepcopy()复制实现赋值六、copy()和deepcopy()的区别6.1  copy()6.

一、前言

python中列表的复制分为几种情况:

  • 直接赋值
  • 浅复制
  • 深复制

下面通过实例分析一下这几种情况的区别。

二、直接赋值


a = [11, 22, 33]
b = a
print(id(a), id(b))
b[0]=1
print(a,b)

输出结果为如下所示,发现内存地址没有发生变化,b只是a的引用,通过b更改列表的值时,a同时做修改。

在这里插入图片描述

三、用切片赋值


a = [11, 22, 33]
b = a[:]
print(id(a), id(b))
b[0]=1
print(a,b)

输出结果为如下所示,发现内存地址发生了变化,通过b更改列表的值时,对a没有任何的影响。

在这里插入图片描述

四、copy()复制实现赋值


a = [11, 22, 33]
b = copy.copy(a)
print(id(a), id(b))
b[0]=1
print(a,b)

输出结果为如下所示,

发现内存地址发生了变化,通过b更改列表的值时,对a没有任何的影响。说明copy()复制的方式和切片的方式功能相同。

在这里插入图片描述

五、deepcopy()复制实现赋值


a = [11, 22, 33]
b = copy.deepcopy(a)
print(id(a), id(b))
b[0]=1
print(a,b)

输出结果为如下所示,发现在该实例中,deepcopy()和copy()的方式没有任何区别。

在这里插入图片描述

那么浅复制和深复制有什么区别呢?继续看下面的实例测试

六、copy()和deepcopy()的区别

6.1  copy()


a = [11, 22, 33, [1,2]]
b = copy.copy(a)
print(id(a), id(b))
b[3][0]=11
print(a,b)

运行结果:

在这里插入图片描述

6.2 deepcopy()


a = [11, 22, 33, [1,2]]
b = copy.deepcopy(a)
print(id(a), id(b))
b[3][0]=11
print(a,b)

运行结果:

在这里插入图片描述

通过上面的测试,发现当列表a中的元素包含子列表时:

copy()方法为浅复制,没有复制子对象,当原始数据改变,子对象会改变;而deepcopy()方法包含对象里面的子对象的复制,当原始对象改变,不会造成深复制里任何子元素的改变。

到此这篇关于Python基础详解之列表复制的文章就介绍到这了,更多相关Python列表复制内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python基础详解之列表复制

本文链接: https://www.lsjlt.com/news/124143.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python基础详解之列表复制
    目录一、前言二、直接赋值三、用切片赋值四、copy()复制实现赋值五、deepcopy()复制实现赋值六、copy()和deepcopy()的区别6.1  copy()6....
    99+
    2024-04-02
  • Python基础之列表
    列表初识 列表的作用和定义 列表是python中使用最频繁的数据类型,在其他语言中一般称为数组; 用一个变量存储多个数据; 列表存储多个数据时,在中括号之间用逗号分隔多个数据; 语法定义: 变量名 = [数据1, 数据2, 数据3,......
    99+
    2023-01-31
    基础 列表 Python
  • python基础入门之列表(一)
    目录正文增删改查循环其他的功能函数元组因为最近公司有python项目维护,所以把python的基础入门的书整理一遍,因为有些忘记了,同时在看<<python编程>&...
    99+
    2024-04-02
  • 重温Python基础之列表操作
    目录序言遍历整个列表加粗样式深入研究循环在for循环中执行更多命令在for循环结束后执行一些操作使用函数range()使用range()创建数字列表切片元组遍历元组中的所有值修改元组...
    99+
    2022-11-13
    Python列表操作 Python列表
  • python之列表详解
    文章目录 一.创建列表1.基于弱数据类型语言的定义2.通过全局函数list()定义3.创建空列表 二.访问列表的值1.通过下标索引2.通过for循环遍历3.通过while循环遍历 ...
    99+
    2023-10-18
    python 开发语言 后端 列表
  • Python基础教程之控制结构详解
    目录0. 学习目标1. 代码块与缩进2. 条件语句2.1 if 语句2.2 if 语句的嵌套2.3 断言3. 循环3.1 while 循环3.2 for 循环3.3 中断循环4. 控...
    99+
    2024-04-02
  • Python基础学习之反射机制详解
    目录什么是反射应用场景基本小栗子贴近实际应用的小场景什么是反射 在Python中,反射是指通过一组内置的函数和语句,在运行时动态地访问、检查和修改对象的属性、方法和类信息的机制。Py...
    99+
    2023-03-22
    Python反射机制 Python反射
  • vue基础之ElementUI表格详解
    目录ElementUI 表格示例:一个基本的表格el-table的属性el-table-column的属性多级表头获取表格,重点说下!!!单选多选排序筛选自定义列展开行 总...
    99+
    2024-04-02
  • Python基础之模块详解
    目录一、模块1、模块的四种形式2、为什么要用模块?二、如何用模块1、import 模块名导入重命名:smt变量指向span模块的名称空间导入多个模块2、from 模块名 import...
    99+
    2024-04-02
  • Python基础之元类详解
    1.python 中一切皆是对象,类本身也是一个对象,当使用关键字 class 的时候,python 解释器在加载 class 的时候会创建一个对象(这里的对象指的是类而非类的实例)...
    99+
    2024-04-02
  • Python基础之进程详解
    目录一、前言二、基本用法三、创建单个进程四、创建多个进程五、进程池六、锁七、进程间通信八、信号量九、数据共享十、总结一、前言 进程,一个新鲜的字眼,可能有些人并不了解,它是系统某个运...
    99+
    2024-04-02
  • JSP之EL表达式基础详解
    一、EL表达式简介 EL表达式全称:Expression Language,即表达式语言 EL表达式作用:代替JSP页面中表达式脚本进行数据的输出 EL表达...
    99+
    2024-04-02
  • Python基础之python循环控制语句break/continue详解
    Python中提供了两个关键字用来控制循环语句,分别是break和continue break在条件成立时,不会执行循环中的后续代码,并且会停止整个循环 continue在条件成立时...
    99+
    2024-04-02
  • vue基础之详解ElementUI的表单
    目录ElementUI表单一个简单的案例表单的主要组件表单组件的使用行内的表单对齐方式表单验证自定义的验证规则表单内组件尺寸控制总结form模块的属性form模块的方法Form Me...
    99+
    2024-04-02
  • python基础之装饰器详解
    目录一、前言二、高阶函数三、函数嵌套四、装饰器4.1 被装饰方法带返回值4.2 被装饰方法带参数4.3 验证功能装饰器4.4 验证功能装饰器——带参数一、前言 装...
    99+
    2024-04-02
  • Python基础详解之描述符
    目录一、描述符定义二、描述符的种类和优先级三、描述符的应用四、描述符 + 类装饰器  (给 Person类添加类属性)五、利用描述符自定义 @property六、prope...
    99+
    2024-04-02
  • python基础之set集合详解
    一、set 集合 集合(set)是一个无序的不重复元素序列。 可以使用大括号 {} 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { ...
    99+
    2024-04-02
  • Java基础之序列化与反序列化详解
    目录1、什么是序列化与反序列化?2、Java如何实现序列化和反序列化?3、如何自定义序列化和反序列化呢?4、writeObject和readObject方法5、serializabl...
    99+
    2024-04-02
  • python基础之序列操作
    类似于and操作 类似于or操作 # 类型转换 # sorted li=[2,45,1,67,23,10] li.sort() #list的排序方法 p...
    99+
    2024-04-02
  • python基础学习3----列表
    一.字符格式化输出 占位符 %s s = string 字符串           %d d = digit 整数           %f f = float 浮点数 name = input("Name:") age = int...
    99+
    2023-01-30
    基础 列表 python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作