# 赋值运算l1 = [1,2,3]l2 = l1l1.append('a')print(l1,l2) # [1, 2, 3, 'a'] [1, 2, 3, 'a']

#copyl1 = [1,2,3]l2 = l1.copy()print(l1,l2) # [1, 2, 3] [1, 2, 3]print(id(l1),id(l2)) # 36772744 36771976l2.append('a')print(l1,l2) # [1, 2, 3] [1, 2, 3, 'a']

l1 = [1,2,[4,5,6],3]l2 = l1.copy()

print(l1,id(l1)) # [1, 2, [4, 5, 6], 3] 36773832print(l2,id(l2)) # [1, 2, [4, 5, 6], 3] 36772744l1.append('a')print(l1,l2) # [1, 2, [4, 5, 6], 3, 'a'] [1, 2, [4, 5, 6], 3]l1[2].append('a')print(l1,l2) # [1, 2, [4, 5, 6, 'a'], 3, 'a'] [1, 2, [4, 5, 6, 'a'], 3]print(id(l1[2])) # 30302792print(id(l2[2])) # 30302792

import copyl1 = [1,2,[4,5,6],3]l2 = copy.deepcopy(l1)print(l1,id(l1)) # [1, 2, [4, 5, 6], 3] 37541960print(l2,id(l2)) # [1, 2, [4, 5, 6], 3] 36773832l1[2].append('a')print(l1,l2) # [1, 2, [4, 5, 6, 'a'], 3] [1, 2, [4, 5, 6], 3]

'''浅拷贝,只拷贝了列表的第一层,所以第一层的id会不同,但是从第二层甚至更深的层次,id就都是一样的了,id(var)函数可以查看内存地址,因此copy()列表第一层是各自独立的,但是从第二层开始就开始相关联。真正要实现深度拷贝,必须要用copy.deepcopy()。总结:浅拷贝,即只有第一层是各自独立的。深拷贝,所有层都是相互独立的。'''

l1 = [1,[1],2,3,4]l2 = l1[:]l1[1].append('a')

#l2 的结果是什么?

print(l1,id(l1)) # [1, [1, 'a'], 2, 3, 4] 30302792print(l2,id(l2)) # [1, [1, 'a'], 2, 3, 4] 37541960print(l1[1] is l2[1]) # True

li = ['alex','taibai','wusir','egon']for i in li:    print(li.index(i),i)

for index,i in enumerate(li,1):    print(index,i)

'''enumerate()说明enumerate()是python的内置函数enumerate在字典上是枚举、列举的意思对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值enumerate多用于在for循环中得到计数例如对于一个seq,得到:'''

# (0, seq[0]), (1, seq[1]), (2, seq[2])

# enumerate()返回的是一个enumerate对象,例如:

# enumerate()使用# 如果对一个列表,既要遍历索引又要遍历元素时,首先可以这样写:list1 = ["这", "是", "一个", "测试"]for i in range (len(list1)):    print(i ,list1[i])

# 上述方法有些累赘,利用enumerate()会更加直接和优美:list1 = ["这", "是", "一个", "测试"]for index, item in enumerate(list1):    print(index, item)

# enumerate还可以接收第二个参数,用于指定索引起始值,如:list1 = ["这", "是", "一个", "测试"]for index, item in enumerate(list1, 1):    print(index, item)

#如果要统计文件的行数,可以这样写:

# count = len(open(filepath, 'r').readlines())

#这种方法简单,但是可能比较慢,当文件比较大时甚至不能工作。

#可以利用enumerate():

# count = 0# for index, line in enumerate(open(filepath,'r')):#     count += 1

扩展:python3【基础】-赋值与深浅拷贝

https://blog.csdn.net/weixin_38246633/article/details/84310770

转载于:https://www.cnblogs.com/LXL616/p/10643244.html

python-深浅copy-18相关推荐

  1. Python 深浅copy 和文件操作

    深浅copy 1,先看赋值运算. l1 = [1,2,3,['barry','alex']] l2 = l1l1[0] = 111 print(l1) # [111, 2, 3, ['barry', ...

  2. Python深浅copy

    在python里对对象进行拷贝有三个,即赋值,深拷贝,浅拷贝.而对象又分为两种,一种是不可变对象(字符串.元组.数字 ),一种是可变对象(列表.字典).而深浅拷贝有三种情况: 拷贝的是不可变对象,对于 ...

  3. Python基础三--字典,集合,编码,深浅copy,元祖、文件操作

    字典 dict数据类型划分:可变数据类型,不可变数据类型不可变数据类型: 元组,bool值,int,str 可哈希可变数据类型: list,dict,set 不可哈希 dict key :必须是不可变 ...

  4. python 的内存回收,及深浅Copy详解

    一.python中的变量及引用 1.1 python中的不可变类型: 数字(num).字符串(str).元组(tuple).布尔值(bool<True,False>) 接下来我们讲完后你就 ...

  5. python中的深浅copy

    深浅copy 复制,首先我们从切片技术说起.它应用于所有的序列,包括:列表,字符串,元祖.但是切片不能应用于字典,对于字典只能使用D.copy() 和 D.deepcopy()方法. 下面具体说一下深 ...

  6. python怎么设置颜色深浅变化_Python赋值、深浅copy

    Python赋值.深浅copy assignment: 在 Python 中,对象的赋值就是简单的对象引用,这点和 C++不同,如下所示 a = [1, 2, 'hello', ['python', ...

  7. [转载] python创建集合、计算a|b_python之路(集合,深浅copy,基础数据补充)

    参考链接: Python 集合set | symmetric_difference 一.集合:类似列表,元组的存储数据容器,不同点是不可修改,不可重复.无序排列. 1.创建集合: (1).set1 = ...

  8. 乐学python怎么样_铁乐学Python_day07_集合and浅谈深浅copy

    1.[List补充] 在循环一个列表时,最好不要使用元素和索引进行删除操作,一旦删除,索引会随之改变,容易出错. 如果想不出错,可以采用倒着删除的方法,因为倒着删除进行的话,只是后面元素的位置发生了变 ...

  9. python之深浅copy

    python之深浅copy 文章目录 python之深浅copy 引入 1.为什么要使用深浅拷贝 一.赋值运算 1.赋值运算原理 2.示例 3.总结 二.拷贝 三.浅拷贝 什么是浅拷贝? 1.浅拷贝原 ...

  10. python拷贝文件函数_python笔记2小数据池,深浅copy,文件操作及函数初级

    小数据池就是在内存中已经开辟了一些特定的数据,经一些变量名直接指向这个内存,多个变量间公用一个内存的数据. int: -5 ~ 256 范围之内 str: 满足一定得规则的字符串. 小数据池: 1,节 ...

最新文章

  1. 计算机右键无法新建excel2007,Win7系统安装Office2007后,Excel不能自动关联,而且右键新建菜单里也没有新建Excel的选项...
  2. 10大类、142条数据源,中文NLP数据集线上搜索开放
  3. javascript+HTMl5游戏下载,开发一个都能月薪上万!舅服你
  4. 5.【练习题】构造方法与重载
  5. tensorflow包_在Keras和Tensorflow中使用深度卷积网络生成Meme(表情包)文本
  6. ReactiveCocoa 更优雅的编程(信号探秘)
  7. 智能实验室-全能优化(Guardio) 4.0.0.670 beta 8
  8. java笔试面试经典问题
  9. 关于企业级系统一些思考
  10. 共享单车需求预测问题:建模篇
  11. C#读写SQLSERVER中Image类型图片
  12. javascript location.href 参数详解
  13. 供应商太多,怎么才能高效比价?
  14. iView的表格做一个带斜线的表头
  15. 开源跨平台2D游戏引擎Love2D介绍
  16. 利用matlab裁剪图片大小,MATLAB裁剪图片
  17. easyUI filebox限定文件大小
  18. 《网络架构系列2-Http详解》
  19. VUE 嵌入 WPS插件
  20. 一步一步来制作CSS3 3D旋转相册

热门文章

  1. 使用 Telnet 仿冒任意邮件
  2. Linux学习之CentOS(二十三)--Linux软件管理之源代码以及RPM软件包管理
  3. HDU2568 前进【水题】
  4. iOS评论App----常用时间的处理
  5. CodeForces 66C Petya and File System (实现)
  6. IE6下绝对定位的DIV被相对定位的DIV挡住的问题
  7. 浅析:seo工程师擅长的网站数据分析
  8. [转]JAVA字节数据与JAVA类型的转换
  9. 杂志大片:摩登都市 爱之城堡
  10. Oracle事务和常用数据库对象