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 ...
随机推荐
- python urljoin问题
如何去除url拼接的时候存在的遗留的'../'问题,可以参考如下的强制去除方法: def fix_URL(urlstring): parts = list(urlparse.urlparse(urls ...
- spring +servlet 与 spring MVC
spring serlvetSpring框架中context-param与servlet中init-param的contextConfigLocation的区别https://blog.csdn.ne ...
- 广州工业大学2016校赛 F 我是好人4 dfs+容斥
Problem F: 我是好人4 Description 众所周知,我是好人!所以不会出太难的题,题意很简单 给你n个数,问你1000000000(含1e9)以内有多少个正整数不是这n个数任意一个的倍 ...
- Cocos2d-x学习笔记(八)精灵对象的创建
精灵类即是Sprite,它实际上就是一张二维图. 它首先直接继承了Node类,因此,它具有节点的特征,同时,它也直接继承了TextureProtocol类,因此,它也具有纹理的基本特征. 这里,有必要 ...
- Python 获取文件的创建时间,修改时间和访问时间
# 用到的知识# os.path.getatime(file) 输出文件访问时间# os.path.getctime(file) 输出文件的创建时间# os.path.getmtime(file) 输 ...
- Spring 事物机制总结
Spring两种事物处理机制,一是声明式事务,二是编程式事务 声明式事物 1)Spring的声明式事务管理在底层是建立在AOP的基础之上的.其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加 ...
- MongoDB(课时22 唯一索引)
3.6.1 唯一索引 唯一索引的主要目的是用在某一个字段上,使该字段的内容不重复. 范例:创建唯一索引 db.students.ensureIndex({"name" : 1}, ...
- WPF中为窗体设置背景图片
在WPF应用程式中,我们往往想为一个窗体设置一个中意的背景图,而不是单独的为这个Background设置成某种颜色或渐变颜色的背景. 在WPF 利用Expression Blend工具如何达到这种效果 ...
- docker添加国内仓库安装iredmail
centos 7: 1.yum install docker or yum update docker sudo tee /etc/docker/daemon.json <<-'EOF'{ ...
- nyoj-833-博弈
833-取石子(七) 内存限制:64MB 时间限制:1000ms 特判: No通过数:16 提交数:30 难度:1 题目描述: Yougth和Hrdv玩一个游戏,拿出n个石子摆成一圈,Yougth和H ...