• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > Python中使用copy模块实现列表(list)拷贝

Python中使用copy模块实现列表(list)拷贝

作者:junjie 字体:[增加 减小] 来源:互联网

junjie 通过本文主要向大家介绍了python deepcopy,python copy deepcopy,python copyfile,python copy模块,python中copy等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

引用是指保存的值为对象的地址。在 Python 语言中,一个变量保存的值除了基本类型保存的是值外,其它都是引用,因此对于它们的使用就需要小心一些。下面举个例子:

问题描述:已知一个列表,求生成一个新的列表,列表元素是原列表的复制
a=[1,2]
b=a
</div>
这种做法其实并未真正生成一个新的列表,b指向的仍然是a所指向的对象。这样,如果对a或b的元素进行修改,a,b的值同时发生变化。

解决的方法为:
a=[1,2]
b=a[:]
</div>
这样修改a对b没有影响。修改b对a没有影响。

但 这种方法只适用于简单列表,也就是列表中的元素都是基本类型,如果列表元素还存在列表的话,这种方法就不适用了。原因就是,象a[:]这种处理,只是将列 表元素的值生成一个新的列表,如果列表元素也是一个列表,如:a=[1,[2]],那么这种复制对于元素[2]的处理只是复制[2]的引用,而并未生成 [2]的一个新的列表复制。为了证明这一点,测试步骤如下:
>>> a=[1,[2]]
>>> b=a[:]
>>> b
[1, [2]]
>>> a[1].append(3)
>>> a
[1, [2, 3]]
>>> b
[1, [2, 3]]
</div>
可见,对a的修改影响到了b。如果解决这一问题,可以使用copy模块中的deepcopy函数。修改测试如下:
>>> import copy
>>> a=[1,[2]]
>>> b=copy.deepcopy(a)
>>> b
[1, [2]]
>>> a[1].append(3)
>>> a
[1, [2, 3]]
>>> b
[1, [2]]
</div>
有时候知道这一点是非常重要的,因为可能你的确需要一个新的列表,并且对这个新的列表进行操作,同时不想影响原来的列表。

</div>

您可能想查找下面的文章:

  • Python中的复制操作及copy模块中的浅拷贝与深拷贝方法
  • 浅谈Python中copy()方法的使用
  • Python中使用copy模块实现列表(list)拷贝
  • Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)

相关文章

  • Python实现针对中文排序的方法
  • python+Django+apache的配置方法详解
  • Python 中 Meta Classes详解
  • python实现用于测试网站访问速率的方法
  • Python linecache.getline()读取文件中特定一行的脚本
  • Python存取XML的常见方法实例分析
  • Python中使用OpenCV库来进行简单的气象学遥感影像计算
  • python cx_Oracle模块的安装和使用详细介绍
  • 使用Python的Twisted框架编写简单的网络客户端
  • 下载给定网页上图片的方法

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Python中多线程及程序锁浅析
    • python实现html转ubb代码(html2ubb)
    • Python中用于计算对数的log()方法
    • python处理xml文件的方法小结
    • 收藏整理的一些Python常用方法和技巧
    • 使用 Python 获取 Linux 系统信息的代码
    • python实现爬虫统计学校BBS男女比例(一)
    • Python 文件操作实现代码
    • Python的ORM框架中SQLAlchemy库的查询操作的教程
    • 浅谈python中的getattr函数 hasattr函数

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有