# 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的更多相关文章

  1. Python id() 函数

    Python id() 函数  Python 内置函数 描述 id() 函数用于获取对象的内存地址. 语法 id 语法: id([object]) 参数说明: object -- 对象. 返回值 返回 ...

  2. 简明python教程 --C++程序员的视角(四):容器类型(字符串、元组、列表、字典)和参考

    数据结构简介 Python定义的类型(或对象)层次结构在概念上可以划分为四种类别:简单类型.容器类型.代码类型 和内部类型. 可以将 PyObject 类之下的所有 Python 类划分为 Pytho ...

  3. 《Python核心编程》 第七章 映射和集合类型 - 习题

    课后习题 7–1. 字典方法.哪个字典方法可以用来把两个字典合并到一起? 答: dict1 = {' :' python' } dict2 = {' :"hello" } dict ...

  4. Python自动化运维之5、内置函数

    python3.x内置函数 官网详解 一些例子:后期慢慢接触到再补充 # help() 详细查看某个类有那些方法或者方法的具体使用 >>> help(str) >>> ...

  5. sublime text3开发python并设置快捷键

    Package Control 安装方法 1.通过快捷键 ctrl+` 或者 View > Show Console 打开控制台,然后粘贴相应的 Python 安装代码: 2.Sublime T ...

  6. python的组合数据类型及其内置方法说明

    python中,数据结构是通过某种方式(例如对元素进行编号),组织在一起数据结构的集合. python常用的组合数据类型有:序列类型,集合类型和映射类型 在序列类型中,又可以分为列表和元组,字符串也属 ...

  7. 探索 Python 学习

    Python 是一种敏捷的.动态类型化的.极富表现力的开源编程语言,可以被自由地安装到多种平台上(参阅 参考资料).Python 代码是被解释的.如果您对编辑.构建和执行循环较为熟悉,则 Python ...

  8. Python 浅拷贝copy()与深拷贝copy.deepcopy()

    首先我在这介绍两个新的小知识,要在下面用到.一个是函数 id() ,另一个是运算符 is.id() 函数就是返回对象的内存地址:is 是比较两个变量的对象引用是否指向同一个对象,在这里请不要和 == ...

  9. python基础 - 变量与运算符

    变量与运算符 变量 定义一个变量 a = [1,2,3,4,5,6] print(a) # [1,2,3,4,5,6] 变量命名要求: 首字母不能是数字 只能包含字符数字下划线 不能是关键字 type ...

随机推荐

  1. 基于R进行相关性分析--转载

    https://www.cnblogs.com/fanling999/p/5857122.html 一.相关性矩阵计算: [1] 加载数据: >data = read.csv("231 ...

  2. axios post请求报错

    问题描述: vue中使用axios提交post请求, 请求地址及参数都对, 但是一直报缺少参数的错误 探索:对比post请求数据, 提交数据的方式不对 (1)axios的post请求(返回响应缺少参数 ...

  3. 查看 rospkg 变量

    echo $ROS_PACKAGE_PATH

  4. Java 常用对象-基本类型的封装类

    2017-11-04 20:39:26 基本类型封装类:基本类型的封装类的好处是可以在对象中定义更多的功能方法操作该数据. 常用操作之一:用于基本数据类型与字符串的转换. 基本类型和包装类的对应: b ...

  5. 为arm 编译包含gd的php5

    1) 下载gd的各种依赖包. 但是不要下载gd本身,因为这是包含在php里的. 探索的时候也下载了 libvpx freetype,可惜最后的编译没过,就没有用上 2)编译各种(编译前记得把各种环境变 ...

  6. CentOS Redhat Linux安装 Oracle Client 的注意点

    1) 安装文件要拷贝到本地文件系统执行 2) 虽然不知道 libXmu是什么,但是安装之后,关联包安装了许多,感觉很省心 yum install libXmu.i686 3)  还有找不到的包的话,用 ...

  7. Silverlight自定义控件系列 – TreeView (4) 缩进

    接下来是缩进,没有缩进的Tree怎么看都不顺眼. 首先,定义节点深度Depth(注:回叫方法暂没有代码,以后要用到): 1: /// <summary> 2: /// Using a De ...

  8. Non-parseable POM 解决方法

     两个build放在一起当然不行,把它们类似这样的合并起来.

  9. Visio 入门教程

    最近做一个新项目,目前在需求确立阶段,所以每天任务是写文档讨论再修改.由于是云端架构设计,避免不了图形图表配合文字说明,需要制作 E-R 图.网络图.时序图.UML 类图等,对比其他可视化图表工具,V ...

  10. thinkphp3.2导出

    public function test() { set_time_limit(0); ini_set('memory_limit', '500M'); //导入PHPExcel类库,因为PHPExc ...