Python学习之路——基础2(含深浅拷贝)
逻辑运算符:not and or
等同于c/c++中的 !、&&、||,除了写法上的不同,实际原理是一样的。
运算也遵循短路原则。由于Python本身不支持++/--操作符,所以避免了类似于c/c++中不慎在&&和||后的表达式中加入++/--运算符,而实际程序运行却产生超出预期的效果,满屏查错却迟迟无法解决。
条件1 or 条件2 #条件1为真时,不判断条件2
条件3 and 条件4 #条件3为假时,不判断条件4
字符格式化输出 %s %d %f
深浅拷贝
浅拷贝 最简单的记忆方法就是,只拷贝最外层的容器。
深拷贝 就是拷贝出一份副本。
对序列执行切片操作时,返回的切片都是副本。但是浅拷贝。
import copy names = [1, 2, 3, [5, 6]] n = names m = names[:] # slicing k = copy.copy(names) # shallow copy # k2 = names.copy() j = copy.deepcopy(names) # deep copy print(n is names, n == names) print(m is names, m == names) print(j is names, j == names) print(k is names, k == names) print(j is m, m is k, j is k) print(j == m, m == k, j == k) names[3][0] = 7 print(k, j) print(id(names), id(n), id(m), id(k)) for a in names: print(id(a)) for a in k: print(id(a))
相关文章移步这里吧:Python的深拷贝与浅拷贝
之前有困惑:既然copy()是浅拷贝,k当中存储的内存地址和names所存储的内存地址相同,为什么k is names返回了False呢?
因为k是创建的新的对象,在内存中开辟出一块内存用来存储与names相同的内存地址,这块内存的地址和names并不一样,所以k is names返回了False。
只有在两个变量指向同一个内存地址时,这两者使用is关键字才会返回True,这时其中一个变量名其实只是给之前开辟出的内存块地址起了别名而已。
Python学习之路——基础2(含深浅拷贝)的更多相关文章
- python学习打卡 day07 set集合,深浅拷贝以及部分知识点补充
本节的主要内容: 基础数据类型补充 set集合 深浅拷贝 主要内容: 一.基础数据类型补充 字符串: li = ["李嘉诚", "麻花藤", "⻩海峰 ...
- python学习笔记:第7天 深浅拷贝
目录 1. 基础数据类型补充 2. set集合 3. 深浅拷贝 1. 基础数据类型补充 (1)join方法 join方法是把一个列表中的数据进行拼接,拼接成字符串(与split方法相反,split方法 ...
- Python学习之路基础篇--07Python基础+编码、集合 和 深浅Copy
1 小数据池(节省内存) 只有数字和字符串中内存,储存在同一个内存地址中 数字的范围在-5~256中,字符串有以下两个特点:不能含有特殊字符,还有就s*20 不是同一个地址,而要*21就不是了 2 编 ...
- python学习之路基础篇(第五篇)
前四天课程回顾 1.python简介 2.python基本数据类型 类: int:整型 | str:字符串 | list:列表 |tuple:元组 |dict:字典 | set:集合 对象: li = ...
- python学习之路基础篇(第四篇)
一.课程内容回顾 1.python基础 2.基本数据类型 (str|list|dict|tuple) 3.将字符串“老男人”转换成utf-8 s = "老男人" ret = by ...
- Python学习之路——基础1
python作为一门解释型的编程语言,和c/c++等其他语言都或多或少有相通的地方,所以有语言基础的话,学起来还是方便一些.所以我的笔记对于相对简单的概念可能会选择放过,但对自己记录的东西我会力求完备 ...
- python学习之路基础篇(第八篇)
一.作业(对象的封装) 要点分析 1.封装,对象中嵌套对象 2.pickle,load,切记,一定要先导入相关的类二.上节内容回顾和补充 面向对象基本知识: 1.类和对象的关系 2.三大特性: 封装 ...
- python学习之路基础篇(第七篇)
一.模块 configparser configparser用于处理特定格式的文件,其本质是利用open来对文件进行操作 [section1] # 节点 k1 = v1 # 值 k2:v2 # 值 [ ...
- python学习之路基础篇(三)
博客参考:http://www.cnblogs.com/wupeiqi/articles/4943406.html http://www.cnblogs.com/luotianshuai/p/4949 ...
随机推荐
- Java入门系列-08-选择结构
这篇文章为你搞懂2个问题 if-else选择结构的使用? switch 的使用? 前面我们学习的代码都是直上直下的执行,还不会"拐弯",这篇文章带大家来看一下会"拐弯&q ...
- URAL 1252 ——Sorting the Tombstones——————【gcd的应用】
Sorting the Tombstones Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I ...
- C#异步编程模型
什么是异步编程模型 异步编程模型(Asynchronous Programming Model,简称APM)是C#1.1支持的一种实现异步操作的编程模型,虽然已经比较“古老”了,但是依然可以学习一下的 ...
- 世界、国家、省、城市SQL
共享一份 世界.国家.省.城市最全的SQL(mysql可直接使用),笔者是花了下载币下载的 下载SQL # pid=0 获取所有国家 # pid=99999999 获取中国的省.自治区.直辖 ...
- csharp:汉字转带拼音声调
{ ...
- Python爬虫《爬取get请求的页面数据》
一.urllib库 urllib是Python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求.其常被用到的子模块在Python3中的为urllib.request和urllib. ...
- html笔记【重新学习】
<a></a>超链接标签: a标签有个target属性,<a href="#" target = "_self">在当前选项 ...
- 用js md5加密
/* * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message * Digest Algorithm, as d ...
- URL工具类
UrlUtils = { /** * 判断url是否存在(存在跨域问题) * @param {String} url */ isTrueUrl: function(_url) { result = f ...
- 图解JavaScript中的原型链
转自:http://www.jianshu.com/p/a81692ad5b5d typeof obj 和 obj instanceof Type 在JavaScript中,我们经常用typeof o ...