人生苦短之Python列表拷贝

列表拷贝的几种方法:

   1.工厂函数 b=list(a)

>>> a=[1,2,3,4]

>>> b=list(a)

>>> b

[1, 2, 3, 4]

>>> id(a)

4338142672

>>> id(b)

4300339608

   2.切片 c=a[:]

>>> c=a[:]

>>> c

[1, 2, 3, 4]

>>> id(c)

4338094736

   3.copy模块

>>> import copy

>>> d = copy.copy(a)

>>> d

[1, 2, 3, 4]

>>> id(d)

4338106448

以上三种方法都属于浅复制,如果复制的列表中还存在列表的话,是没办法完全复制的,也就是说如果 a=[[1,2],3,4] ,使用上面的方法复制个b,如果改变a中列表[1,2]的值,那么b中也会改变,如何实现深复制呢?

深拷贝

使用copy模块中的copy.deepcopy方法就可以,看函数名也知道这是个什么样的函数了。

时间: 2024-07-30 07:35:30

人生苦短之Python列表拷贝的相关文章

[转载] Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结

创建列表 sample_list = ['a',1,('a','b')] Python 列表操作 sample_list = ['a','b',0,1,3] 得到列表中的某一个值 value_start = sample_list[0] end_value = sample_list[-1] 删除列表的第一个值 del sample_list[0] 在列表中插入一个值 sample_list[0:0] = ['sample value'] 得到列表的长度 list_length = len(sa

Python 列表(list)操作

创建列表 sample_list = ['a',1,('a','b')] Python 列表操作 sample_list = ['a','b',0,1,3] 得到列表中的某一个值 value_start = sample_list[0] end_value = sample_list[-1] 删除列表的第一个值 del sample_list[0] 在列表中插入一个值 sample_list[0:0] = ['sample value'] 得到列表的长度 list_length = len(sa

Python 列表(list)、字典(dict)、字符串(string)常用基本操作小结

[python] view plaincopy 创建列表 sample_list = ['a',1,('a','b')] Python 列表操作 sample_list = ['a','b',0,1,3] 得到列表中的某一个值 value_start = sample_list[0] end_value = sample_list[-1] 删除列表的第一个值 del sample_list[0] 在列表中插入一个值 sample_list[0:0] = ['sample value'] 得到列表

python 列表、元组 详解

python中有6种序列的内置类型,分别为:列表,元组,字符串,Unicode字符串,buffer对象和xrange对象 列表和元组是最常见两种类型. 下面将以列表(list)和元组(tuple)为例对序列操作进行详细的讲解: 一.列表(list) 列表序列操作有:索引.切片.修改.追加.插入.删除.扩展.统计.排序(翻转).获取下标.拷贝 1. 索引 (list[i]) 列表的索引序号(又称为下标)如下图所示,该序列一共拥有n个元素, 从左到右索引是从 0 开始,  n-1 为最后一个元素 从

Python开发【第二章】:Python深浅拷贝剖析

Python深浅拷贝剖析 Python中,对象的赋值,拷贝(深/浅拷贝)之间是有差异的,如果使用的时候不注意,就可能产生意外的结果. 下面本文就通过简单的例子介绍一下这些概念之间的差别. 一.对象赋值 创建列表变量Alex,变量包含子列表,通过变量Alex给变量lzl赋值,对

python列表,元组

python列表: 列表的格式为: list=["index1","index2",1,2] #list为列表名,index1,index2,1,2为列表元素. 上面就是一个简单的列表,那如何获取,输出列表中的元素呢?: #列表每个元素都有个下标,根据下标进行获取列表中的元素值: list=["index1","index2",1,2] print(list[1]) index2    #打印结果 #列表元素下标从0开始计算,

Python列表list 数组array常用操作集锦【转】

Python中的列表(list)类似于C#中的可变数组(ArrayList),用于顺序存储结构. 创建列表 sample_list = ['a',1,('a','b')] Python 列表操作 sample_list = ['a','b',0,1,3] 得到列表中的某一个值 value_start = sample_list[0] end_value = sample_list[-1] 删除列表的第一个值 del sample_list[0] 在列表中插入一个值 sample_list[0:0

python列表中添加对象时的注意

最近在用python写代码,用到了对象数组.在c++中我们要使用能够灵活操作的对象数组,一般会用stl的vector类,该类的push_back方法可以将一个对象的拷贝加入到vector对象中,所以当使用[]下标对vector的元素进行修改时,原来的作为push_back参数的那个对象的值并不会改变.python中类似的方法是列表的append方法,但是要注意此时若加入到列表中的是基础数据类型,则是值传递,若是对象,则是引用传递.这种参数的传递方式和java一样.因此,在python中通过列表下

python 列表相关内容

python 列表相关内容 1.增加2.修改3.切片4.清空5.删除6.杂项 #定义两个列表name2 = [1,2,3,4]name_list = ['zhang','wang','li','liu','yang' ,['ding','guo'],'zhao'] 1.列表的追加操作:name_list.append(name2)print(name_list)输出结果:['zhang', 'wang', 'li', 'liu', 'yang', ['ding', 'guo'], 'zhao',