您的位置:

python拷贝list,python拷贝目录

本文目录一览:

python 中此例totallist = list1[:]有人说是浅拷贝有人说是切片操作我看资料浅拷贝是用 shallow copy

python中序列都可以用切片操作。list[n:m:x],n表示起始位置,m表示终止位置(不包括),x表示步长。如果省略三个参数,默认为从0到最后,步长为一。

浅拷贝是拷贝值,修改拷贝的值不会影响原来的值。

totallist=list1[:]是切片操作,它实现的效果是将list1的值赋给totallist,也是浅拷贝。修改totallist的值不会影响到list1;如果是totallist=list1,修改其中任何一个列表,另一个都会随之改变。 在这里,切片操作是一种手段,浅拷贝是结果。

python 3 如何提取list中值

$ pythonPython 2.7.3 (default, Mar 14 2014, 11:57:14) [GCC 4.7.2] on linux2Type "help", "copyright", "credits" or "license" for more information. lst=[... '11', '1', '100', '10\n',... '11', '2', '200', '20\n',... '11', '3', '300', '30\n',... '11', '4', '400', '40\n'] # 第一步:将数据组织成方便使用的结构 data = [... map(int, lst[i*4:(i+1)*4])... for i in xrange(len(lst)/4)... ] data[[11, 1, 100, 10], [11, 2, 200, 20], [11, 3, 300, 30], [11, 4, 400, 40]] # 第二步就直接简单地计算好了 1. * sum([x[2] for x in data]) / len(data)250.0 1. * sum([x[3] for x in data]) / len(data)25.0

或者在要处理很多月份,并有按月计算的需求时:按月-数据的字典结构组织数据并设一个计算平均值的函数就更简单了

123456789101112131415161718192021222324

lst=[... '11', '1', '100', '10\n',... '11', '2', '200', '20\n',... '11', '3', '300', '30\n',... '11', '4', '400', '40\n',... '12', '1', '120', '12\n',... '12', '2', '230', '23\n',... '12', '3', '340', '34\n',... '12', '4', '450', '45\n',... ] data = {} for x in [... map(int, lst[i*4:(i+1)*4])... for i in xrange(len(lst)/4)... ]:... data.setdefault(x[0], []).append(x[1:])... def avg(serial):... return 1. * sum(serial) / len(serial)... avg([x[1] for x in data[12]]) # 计算12月的第二个数据的平均值285.0

python 嵌套list读取

b1=[[2]*3]*2

b2=[[2,2,2],[2,2,2]]

这个两个定义的变量其实时不一样的

b2一个list,包含两个list元素

b1是1个list元素的两个浅拷贝,可以理解成两个指向[2]*3的指针。

出现这种问题,实际上理解的误区,[2]*3

=

[2,2,2]

就想当然的把[[2]*3]*2=

[2,2,2]*2

=

[[2,2,2]

[2,2,2]]

其实[[]]是一个list的浅拷贝(或者理解成指向list指针)

更详细的可以看下python的文档,里面有说明。

Python的列表有没有浅复制跟深复制的概念

有的。比如:

首先这里导入copy模块,并生成三个列表

对list1的最外层进行修改操作:

list2和list3没有任何影响

对list1内层进行修改操作:

发现list2和list3有不同,其中list2就是浅复制,list3就是深复制

浅复制就是指当对象的字段值被复制时,字段引用的对象不会被复制,也就是引用的对象和原数据还是同一个,并没有产生一个新的对象

深复制指对对象中字段引用的对象也进行复制的一种方式,会产生一个新的值相同的不同对象

python list怎么copy

Python3里面 List有 copy()方法

或者使用list[:]

a= [1,2,3]

b= a[:]

#实现复制

python3对于列表的 [:]和list.copy 有什么区别?

我们日常所说的复制(自己在电脑硬盘上的复制)就是深复制(deepcopy),即将被复制对象完全再复制一遍作为独立的新个体单独存在。所以改变原有被复制对象不会对已经复制出来的新对象产生影响。

而浅复制(copy)并不会产生一个独立的对象单独存在,他只是将原有的数据块打上一个新标签,所以当其中一个标签指向的数据块就会发生变化,另一个标签也会随之改变。这就和我们寻常意义上的复制有所不同了。