Python id
# id()函数可以帮我们查看一个变量的内存地址
a = 10
b = 30
print(id(a))
print(id(b))
lst = ["周杰伦","麻花藤"]
print(id(lst))
lst = [] # 创建了一个新列表
lst.append("胡辣汤")
print(id(lst)) lst1 = [1,2,3] #两个对象 内存地址是不一样的
lst2 = [1,2,3]
print(id(lst1)) # 34153608
print(id(lst2)) # 38782856 s1 = "abc" # 内存中是没有"abc", 创建一个新的 0.001
s2 = "abc" # 内存中是已经有啦"abc", 直接把abc拿来用 0.0000001
print(id(s1),id(s2)) # 使用频率最高的数据类型: 字符串, 为了能够快速的创建字符串, 节省内存, 把相同的规律的字符串进行缓存
# 当下次创建的时候就不在创建了
# 把字符串的缓存-> 小数据池-> String iterning-> 常量池-> 字符串缓存 # 在创建字符串之前, 先去小数据池对比, 是否已经存在了该字符串, 如果存在了,
# 就不创建新的了, 直接拿原来存在的数据, 省略反复重复创建字符串的过程, 节约内存 # 什么数据会被缓存
# 数字, 字符串, 布尔值 => 都是不可变的数据类型
# 1. 数字
a = 1000
b = 1000
print(id(a), id(b)) # 2. 字符串, 如果单纯的写字符串, 几乎都会被缓存
s1 = "alex昨天上厕所没关门,韩红冲进去了, 面筋哥出来了, 有故事"
s2 = "alex昨天上厕所没关门,韩红冲进去了, 面筋哥出来了, 有故事"
print(id(s1),id(s2)) # 如果在py文件中写的字符串, 几乎都是缓存的
# 在黑窗口里的写的几乎都不会缓存
# 不同的解释器, 缓存的机制也不一样
#
# 优点: 可以帮我们快速的创建对象
# 缺点: 缓存如果过大, 响应速度回比较慢
# 不要纠结 # == 和 is 区别
# ==比较的是数据, 外贸
# is 比较的是内存地址,比较身份证号
lst1 = [1,2,3]
lst2 = [1,2,3]
# 列表没有小数据池
print(id(lst1),id(lst2))
print(lst1 == lst2) # True
print(lst1 is lst2) # False s1 = "我叫周润发"
s2 = "我叫周润发"
print(s1 == s2) # True
print(s1 is s2) # False tu1 = ("周一", "周二")
tu2 = ("周一", "周二")
print(s1 is s2) # False 地址不相等
print(s1 == s2) # True
Python id的更多相关文章
- Python id() 函数
Python id() 函数 Python 内置函数 描述 id() 函数用于获取对象的内存地址. 语法 id 语法: id([object]) 参数说明: object -- 对象. 返回值 返回 ...
- 简明python教程 --C++程序员的视角(四):容器类型(字符串、元组、列表、字典)和参考
数据结构简介 Python定义的类型(或对象)层次结构在概念上可以划分为四种类别:简单类型.容器类型.代码类型 和内部类型. 可以将 PyObject 类之下的所有 Python 类划分为 Pytho ...
- 《Python核心编程》 第七章 映射和集合类型 - 习题
课后习题 7–1. 字典方法.哪个字典方法可以用来把两个字典合并到一起? 答: dict1 = {' :' python' } dict2 = {' :"hello" } dict ...
- Python自动化运维之5、内置函数
python3.x内置函数 官网详解 一些例子:后期慢慢接触到再补充 # help() 详细查看某个类有那些方法或者方法的具体使用 >>> help(str) >>> ...
- sublime text3开发python并设置快捷键
Package Control 安装方法 1.通过快捷键 ctrl+` 或者 View > Show Console 打开控制台,然后粘贴相应的 Python 安装代码: 2.Sublime T ...
- python的组合数据类型及其内置方法说明
python中,数据结构是通过某种方式(例如对元素进行编号),组织在一起数据结构的集合. python常用的组合数据类型有:序列类型,集合类型和映射类型 在序列类型中,又可以分为列表和元组,字符串也属 ...
- 探索 Python 学习
Python 是一种敏捷的.动态类型化的.极富表现力的开源编程语言,可以被自由地安装到多种平台上(参阅 参考资料).Python 代码是被解释的.如果您对编辑.构建和执行循环较为熟悉,则 Python ...
- Python 浅拷贝copy()与深拷贝copy.deepcopy()
首先我在这介绍两个新的小知识,要在下面用到.一个是函数 id() ,另一个是运算符 is.id() 函数就是返回对象的内存地址:is 是比较两个变量的对象引用是否指向同一个对象,在这里请不要和 == ...
- python基础 - 变量与运算符
变量与运算符 变量 定义一个变量 a = [1,2,3,4,5,6] print(a) # [1,2,3,4,5,6] 变量命名要求: 首字母不能是数字 只能包含字符数字下划线 不能是关键字 type ...
随机推荐
- java动态代理和cglib
1.代理类可以分为两种. 静态代理:由程序员创建或特定工具自动生成源代码,再对其编译.在程序运行前,代理类的.class文件就已经存在了. 动态代理:在程序运行时,运用反射机制动态创建而成. 2.JD ...
- MVC项目发布IIS CSS无法加载
IIS配置网站在本地服务器调用不了CSS,新装了一个WIN8系统,IIS配置好之后做好的网站样式表浏览器不调用 处理方法 : 把静态内网 勾选打上即可 如果上述方法操作完成还是访问不鸟就继续往下看 权 ...
- Codeforces 101487E - Enter The Dragon
101487E - Enter The Dragon 思路:做的时候两个地方理解错了,第一个事我以为龙吸了水,水就干了,其实龙是在下雨之前吸的,下雨时湖水又满了,所以湖水永远不会干:第二个是以为只要找 ...
- Java 常用对象-Date类和Calender类
2017-11-02 22:29:34 Date类:类 Date 表示特定的瞬间,精确到毫秒. 在 JDK 1.1 之前,类 Date 有两个其他的函数.它允许把日期解释为年.月.日.小时.分钟和秒值 ...
- (GoRails )使用Vue.js制作拖拉list功能(v5-8)
视频5 改进视觉效果,让list看起来更舒服.新增横向滚动功能. 参考我的trello:https://trello.com/b/BYvCBpyZ/%E6%AF%8F%E6%97%A5%E8%AE%B ...
- 莫比乌斯反演学习笔记(转载自An_Account大佬)
转载自An_Account大佬 提示:别用莫比乌斯反演公式,会炸的 只需要记住: [gcd(i,j)=1]=∑d∣gcd(i,j)μ(d)[gcd(i,j)=1]=\sum_{d|gcd(i,j)}\ ...
- 『Collections』Counter计数
Counter()方法 计数器,返回字典,会同时去重,文本处理常用 from collections import Counter co = Counter(list('abcdefgad')) co ...
- 『cs231n』注意力模型
RNN实现文本标注: 弊端是图像信息只在初始化时有用到 Soft Attention模型: 每一层具有三个输入:隐藏状态 + 注意力特征向量 + 词向量 每一层具有两个输出:新的位置分布(指示下一次‘ ...
- h5 plus/h5+规范使用,模块索引,教你如何去看h5+的手册
最近看了下h5+规范的官网,开始觉得晦涩难懂,确实很乱,不过这也是基于我不理解的情况,终于艰难读完了,现在来分享下心得吧,基本看完文章,按我的方法,应该可以直接上手项目. 我准备的工具 hbuilde ...
- unity3d 博客
博客: 1.http://my.csdn.net/caoboya 2.http://my.csdn.net/OnafioO