23-python基础-python3-浅拷贝与深拷贝(1)
1.可变和不可变数据类型。
- 列表是‘可变的’数据类型,它的值可以添加、删除或改变。
- 字符串是‘不可变的’,它不能被更改。
(1)字符串
- 尝试对字符串中的一个字符重新赋值,将导致TypeError错误。
a = 'abcd'
a[0]='e' Traceback (most recent call last):
4 File "C:\Users\summer\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2961, in run_code
5 exec(code_obj, self.user_global_ns, self.user_ns)
6 File "<ipython-input-37-93bf15c8bf3d>", line 1, in <module>
7 a[0]='e'
8 TypeError: 'str' object does not support item assignment
- ‘改变’一个字符串的正确方式,使用切片和连接
a = 'abcd'
a = a[:1]+'e'+a[1:]
a
'aebcd'
(2)列表
- 区别:列表的覆盖和修改
- 列表覆盖(并不能修改列表,而是创建一个新的列表)
b = [1,2,3]
id(b)
Out[42]: 95411912
b = [2,3,4]
id(b)
Out[44]: 95411720
- 列表修改(在当前列表修改,不会创建新的列表)
b = [1,2,3]
id(b)
Out[46]: 93984712
b.append(4)
b
Out[48]: [1, 2, 3, 4]
id(b)
Out[49]: 93984712
del b[0]
b
Out[51]: [2, 3, 4]
id(b)
Out[52]: 93984712
(3)元组
- 元组与列表的主要区别在于,元组像字符串一样,是不可变的。元组不能让它们的值被修改、添加或删除。
a = ('hello',1,'a')
a[0]=1
3 Traceback (most recent call last):
4 File "C:\Users\summer\Anaconda3\lib\site-packages\IPython\core\interactiveshell.py", line 2961, in run_code
5 exec(code_obj, self.user_global_ns, self.user_ns)
6 File "<ipython-input-54-f9da761c742a>", line 1, in <module>
7 a[0]=1
8 TypeError: 'tuple' object does not support item assignment
2. 引用
- 引用是一个值,指向某些数据。
- 在变量必须保存可变数据类型的值时,例如列表或字典,Python 就使用引用。
- 将列表赋给一个变量时,实际上是将列表的“引用”赋给了该变量。列表引用是指向一个列表的值。
- 对于不可变的数据类型的值,例如字符串、整型或元组,Python变量就保存值本身。
spam = [0, 1, 2, 3, 4, 5]
id(spam)
Out[66]: 95545224
cheese = spam
cheese
Out[68]: [0, 1, 2, 3, 4, 5]
id(cheese)
Out[69]: 95545224
cheese[1]='hello'
cheese
Out[71]: [0, 'hello', 2, 3, 4, 5]
spam
Out[72]: [0, 'hello', 2, 3, 4, 5]
id(cheese)
Out[73]: 95545224
id(spam)
Out[74]: 95545224
23-python基础-python3-浅拷贝与深拷贝(1)的更多相关文章
- python 基础之浅拷贝与深拷贝
浅拷贝与深拷贝 1.普通赋值 例1: a = 15b = aa = 16print(b)#例2:lst1 = [1,2,3]lst2 = lst1lst1.append(4)print(lst2)#这 ...
- [编程基础] Python对象的浅拷贝与深拷贝笔记
Python中的赋值语句不创建对象的副本,它们只将名称绑定到对象.对于不可变的对象,这通常没有什么区别.但是对于处理可变对象或可变对象的集合,您可能需要寻找一种方法来创建这些对象的"真实副本 ...
- python 进阶篇 浅拷贝与深拷贝
阐述引用.浅拷贝和深拷贝前,首先需要要了解 Python 的世界里,一切皆对象,每个对象各包含一个 idendity.type 和 value. 引用(Reference) >>> ...
- Python 引用、浅拷贝、深拷贝解析
引用 Python是动态数据类型的语言,故在对变量进行赋值时是不用制定变量类型的. 或者说,你可以把变量赋值的过程,当作是贴一个标签,去引用该数据. 看下面的例子: In [54]: a=4 In [ ...
- python赋值、浅拷贝、深拷贝区别
在写Python过程中,经常会遇到对象的拷贝,如果不理解浅拷贝和深拷贝的概念,你的代码就可能出现一些问题.所以,在这里按个人的理解谈谈它们之间的区别. 一.赋值(assignment) 在<Py ...
- Python 赋值、浅拷贝和深拷贝
初学Python,和C++还是有许多不同.直接赋值.浅拷贝和深拷贝,这三种拷贝对象的操作之间还是有许多的区别.Python语言的版本为2.7,在Pycharm中进行实验. 一.直接赋值 用下面的代码来 ...
- Python赋值、浅拷贝、深拷贝
一.赋值(assignment) >>> a = [1, 2, 3] >>> b = a >>> print(id(a), id(b), sep= ...
- python中的浅拷贝,深拷贝
直接引用,间接引用 # 1.列表存储的是索引对应值的内存地址,值会单独的开辟一个内存空间 list = ["a","b"] 内存里面存储的就是list[0],l ...
- python中的浅拷贝和深拷贝
1.赋值语句 a = 'abc' b = a print id(a) print id(b) # id(a):29283464 # id(b):29283464 通过简单的复制,我们可以看到,a b其 ...
- 16.python中的浅拷贝和深拷贝
在讲什么是深浅拷贝之前,我们先来看这样一个现象: a = ['scolia', 123, [], ] b = a[:] b[2].append(666) print a print b
随机推荐
- 一些关于SEO优化的笔记
高级搜索指令: 双引号:“xxx” 代表完全匹配的搜索 减号:-(减号前面必须是空格,后面必须没有空格)代表搜索不包含减号后面的词的页面 filetype:用于搜索特定文件格式(百度支持的文件类型:P ...
- JavaScript 模拟后台任务
读书笔记,请勿转载,发布,产权不归我所有,归以前作者所有,我只是做读书笔记. /*! * Copyright 2015 Google Inc. All rights reserved. * * Lic ...
- 【学习总结】Python-3-算术运算符中的/和//
参考:菜鸟教程-Python3运算符 参考:菜鸟教程-Python3数字 算术运算符中的两种除法的区别: 一个斜杠/:正常的人类除法,两个int相除也保留小数 eg: 21/10 = 2.1 两个斜杠 ...
- How can I check the last time stats was run on Oracle without using OEM
All of the following data dictionary tables have a LAST_ANALYZED column (replace * with USER/ALL/DBA ...
- UML的9种图例解析(转)
原帖已经不知道是哪一个,特在此感谢原作者.如有侵权,请私信联系.看到后即可删除. UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现 类与类图 1) 类(Class)封装了数据和行为,是面向对 ...
- Ubuntu下下载使用sublime
使用Sublime真心很舒服.安装方法很简单,如下 进入官网http://www.sublimetext.com/2下载你的Sublime Text 2,然后解压文件. 把解压后得到的文件移动到/us ...
- Windows下Redis安装+可视化工具Redis Desktop Manager使用
Redis是有名的NoSql数据库,一般Linux都会默认支持.但在Windows环境中,可能需要手动安装设置才能有效使用.这里就简单介绍一下Windows下Redis服务的安装方法,希望能够帮到你. ...
- Ververica Platform-阿里巴巴全新Flink企业版揭秘
摘要:2019云栖大会大数据 & AI专场,阿里巴巴资深技术专家王峰带来“Ververica Platform-阿里巴巴全新Flink企业版揭秘”的演讲.本文主要从Ververica由来开始谈 ...
- ShopNC多用户商城标题去版权 后台去版权方法2.0版本
一.前台标题: \framework\tpl\nc.php 第85行 $output['html_title'] = ( $output['html_title'] != "" ? ...
- rsync和rsync后台模式
注意(有软连接的rsync同步,-L可以把软链接里的当普通文件同步.-l 只同步软链接不同步软链接指向的目录或文件) rsync命令详解 rsync -a 归档模式 ,表示以递归方式传输文件,并保持所 ...



