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 相关文章推荐
Python continue语句用法实例
Mar 11 Python
Python中常见的数据类型小结
Aug 29 Python
django1.8使用表单上传文件的实现方法
Nov 04 Python
Python数据分析之双色球中蓝红球分析统计示例
Feb 03 Python
python opencv 直方图反向投影的方法
Feb 24 Python
详解python配置虚拟环境
Apr 08 Python
利用pyinstaller打包exe文件的基本教程
May 02 Python
python issubclass 和 isinstance函数
Jul 25 Python
Python数据处理篇之Sympy系列(五)---解方程
Oct 12 Python
python 有效的括号的实现代码示例
Nov 11 Python
python通过matplotlib生成复合饼图
Feb 06 Python
python GUI库图形界面开发之PyQt5窗口布局控件QStackedWidget详细使用方法
Feb 27 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
apache+mysql+php+ssl服务器之完全安装攻略
2006/09/05 PHP
php反弹shell实现代码
2009/04/22 PHP
DEDE采集大师官方留后门的删除办法
2011/01/08 PHP
基于php冒泡排序算法的深入理解
2013/06/09 PHP
php制作动态随机验证码
2015/02/12 PHP
php上传图片获取路径及给表单字段赋值的方法
2016/01/23 PHP
php 截取utf-8格式的字符串实例代码
2016/10/30 PHP
PHP内部实现打乱字符串顺序函数str_shuffle的方法
2019/02/14 PHP
完美解决JS中汉字显示乱码问题(已解决)
2006/12/27 Javascript
在浏览器窗口上添加遮罩层的方法
2012/11/12 Javascript
js 判断一个元素是否在页面中存在
2012/12/27 Javascript
JS清除选择内容的方法
2015/01/29 Javascript
Bootstrap的图片轮播示例代码
2015/08/31 Javascript
JS转换HTML转义符的方法
2016/08/24 Javascript
JavaScript实现水平进度条拖拽效果
2017/01/18 Javascript
angularjs使用directive实现分页组件的示例
2017/02/07 Javascript
vue router学习之动态路由和嵌套路由详解
2017/09/21 Javascript
canvas绘制爱心的几种方法总结(推荐)
2017/10/31 Javascript
react-navigation 如何判断用户是否登录跳转到登录页的方法
2017/12/01 Javascript
vue源码学习之Object.defineProperty 对数组监听
2018/05/30 Javascript
每天学点Vue源码之vm.$mount挂载函数
2019/03/11 Javascript
分析Python读取文件时的路径问题
2018/02/11 Python
python使用matplotlib画饼状图
2018/09/25 Python
PyQt5 QTableView设置某一列不可编辑的方法
2019/06/25 Python
python二元表达式用法
2019/12/04 Python
Python批量处理csv并保存过程解析
2020/05/16 Python
一个基于canvas的移动端图片编辑器的实现
2020/10/28 HTML / CSS
吉尔德利巧克力公司:Ghirardelli Chocolate Company
2019/03/27 全球购物
策划总监岗位职责
2014/02/16 职场文书
大二学生自我检讨书
2014/10/23 职场文书
爱国主义电影观后感
2015/06/18 职场文书
母亲节主题班会
2015/08/14 职场文书
2016三八妇女节慰问信
2015/11/30 职场文书
如何用python绘制雷达图
2021/04/24 Python
海贼王十大潜力果实,路飞仅排第十,第一可毁世界(震震果实)
2022/03/18 日漫
把77A收信机改造成收音机
2022/04/05 无线电