Python的in,is和id函数代码实例


Posted in Python onApril 18, 2020

1. in 和 not in —— 判断某个序列中是否存在某值

# in
aa = [1,2,3,'Cathy','太平洋']
if '大西洋' in aa:
  print('yes')
else:
  print('no') # no

# not in
if '大西洋' not in aa:
  print('yes') # yes
else:
  print('no')
  
#-------------------------------------------------------
# 判断字符串是否存在某子串  
if '马来西亚' in '马来西亚是一个太平洋国家':  
  print('of course') # 输出 'of course'

# ------------------------------------------------------
if 0 in (0,1,2,3):
  print('hhhh') #输出 'hhhh'

if 0 in [0,1,2,3]:
  print('kkkk') #输出 'hhhh'

2. is 和 is not —— 判断两个标识符是不是指向同一个地址(同一个对象),类似于判断 id(x) == id(y) —— 具体对于相同值的内存管理

# 相同
bb = 234
cc = 234
if bb is cc:
  print('bb is cc') #结果是 bb is cc 
else:
  print('bb is not cc')
print(id(bb)) # id()值一样,因为python的优化机制,相同的'数值'数据会使用同样的内存空间。
print(id(cc))

# 相同
bb = 'hhh'
cc = 'hhh'
if bb is cc:
  print('bb is cc') #同样也是因为python的自身机制,在某些'字符'位数下,相同字符串也会指向同一地址 ------ 有说20位的,与系统有关
else:
  print('bb is not cc')# 相同,python的对象引用机制
bb = [1,2,3] 
cc = bb
if bb is cc:
  print('bb is cc') #结果是 bb is cc 
else:
  print('bb is not cc')

# 不相同
bb = [1,2,3]
cc = [1,2,3]
if bb is cc:
  print('bb is cc')  
else:
  print('bb is not cc') #结果是 bb is not cc
print(id(bb)) # id()值不一样
print(id(cc))

3. id() 函数,获取对象的内存地址(不同电脑不一样),例如:

bb = 'hhh'
cc = bb
if bb is cc:
  print('bb is cc') #结果是 bb is cc 
else:
  print('bb is not cc')
print(id(bb)) # id()值一样,均为 1680346901336
print(id(cc))

4. 可变数据类型和不可变数据类型

不可变数据类型: 当该类型的变量值发生了改变,它对应的内存地址也会发生改变。

可变数据类型 :当该类型的变量值发生了改变,它对应的内存地址不发生改变。

这里的可变不可变,是指内存中的值内容(value)是否可以被改变。如果是不可变类型,在操作对象本身的时候,必须在内存新申请一块内存(因为原内存内容是不可变的)。如果是可变类型,操作对象的时候,不需要再在其他地方申请内存,只需要在此对象后面连续申请内存,所以它的地址会保持不变,但该内存区域大小会变化。

在python中:

int,string,float,tuple —— 属于python的不可变类型

object、list、set —— 属于python的可变类型

使用:可以使用内建函数id()来确认对象的地址在两次赋值前后是否发生了变化。

例如:分别对于数值和列表类型:

a = 1
print(id(a))
a = a+1 #a本身发生变化
print(id(a))
# 结果分别为:140732932812544 和 140732932812576,表示id值发生了变化

a = ['1']
print(id(a))
a.append('sss') #a本身发生变化
print(id(a))
print(a)  # 输出:['1', 'sss']
# 结果分别为:1680347029768 和 1680347029768,表示id值没有变化

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
详细介绍Ruby中的正则表达式
Apr 10 Python
Python实现公历(阳历)转农历(阴历)的方法示例
Aug 22 Python
不知道这5种下划线的含义,你就不算真的会Python!
Oct 09 Python
Python中字符串List按照长度排序
Jul 01 Python
django之自定义软删除Model的方法
Aug 14 Python
python 计算两个列表的相关系数的实现
Aug 29 Python
Django配置MySQL数据库的完整步骤
Sep 07 Python
From CSV to SQLite3 by python 导入csv到sqlite实例
Feb 14 Python
使用Python+selenium实现第一个自动化测试脚本
Mar 17 Python
Python实现自动打开电脑应用的示例代码
Apr 17 Python
Kears 使用:通过回调函数保存最佳准确率下的模型操作
Jun 17 Python
pytorch 计算ConvTranspose1d输出特征大小方式
Jun 23 Python
Python json读写方式和字典相互转化
Apr 18 #Python
Python figure参数及subplot子图绘制代码
Apr 18 #Python
Python数组拼接np.concatenate实现过程
Apr 18 #Python
Python稀疏矩阵及参数保存代码实现
Apr 18 #Python
Python try except异常捕获机制原理解析
Apr 18 #Python
Python数据正态性检验实现过程
Apr 18 #Python
如何基于线程池提升request模块效率
Apr 18 #Python
You might like
php中青蛙跳台阶的问题解决方法
2018/10/14 PHP
PHP设计模式之建造者模式(Builder)原理与用法案例详解
2019/12/12 PHP
javascript 框架小结 个人工作经验
2009/06/13 Javascript
用Javascript 和 CSS 实现脚注(Footnote)效果
2009/09/09 Javascript
基于jquery的点击链接插入链接内容的代码
2012/07/31 Javascript
js常用自定义公共函数汇总
2014/01/15 Javascript
js对象基础实例分析
2015/01/13 Javascript
jQuery简单操作cookie的插件实例
2016/01/13 Javascript
jQuery+ajax+asp.net获取Json值的方法
2016/06/08 Javascript
移动端js图片查看器
2016/11/17 Javascript
基于jquery实现二级联动效果
2017/03/30 jQuery
基于VUE选择上传图片并页面显示(图片可删除)
2017/05/25 Javascript
详解Vue学习笔记入门篇之组件的内容分发(slot)
2017/07/17 Javascript
vue-router动态设置页面title的实例讲解
2018/08/30 Javascript
前端性能优化建议
2020/09/17 Javascript
[01:36:19]Secret vs NB 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
详解Python的迭代器、生成器以及相关的itertools包
2015/04/02 Python
使用Python的Treq on Twisted来进行HTTP压力测试
2015/04/16 Python
Python读写文件方法总结
2015/06/09 Python
Python制作爬虫采集小说
2015/10/25 Python
用yum安装MySQLdb模块的步骤方法
2016/12/15 Python
python实现换位加密算法的示例
2018/10/14 Python
python实现统计文本中单词出现的频率详解
2019/05/20 Python
一文了解Python并发编程的工程实现方法
2019/05/31 Python
python安装requests库的实例代码
2019/06/25 Python
Pycharm新建模板默认添加个人信息的实例
2019/07/15 Python
PYTHON发送邮件YAGMAIL的简单实现解析
2019/10/28 Python
python实现把两个二维array叠加成三维array示例
2019/11/29 Python
pytorch-神经网络拟合曲线实例
2020/01/15 Python
Python hashlib模块的使用示例
2020/10/09 Python
Tripadvisor新西兰:阅读评论,比较价格和酒店预订
2018/02/10 全球购物
西安交大自主招生自荐信
2014/01/27 职场文书
班主任与学生安全责任书
2014/07/25 职场文书
群众路线自查自纠工作情况报告
2014/10/28 职场文书
2015秋季开学典礼新闻稿
2015/07/17 职场文书
《总之就是很可爱》新作短篇动画《总之就是很可爱~制服~》将于2022年夏天播出
2022/04/07 日漫