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 相关文章推荐
使用rpclib进行Python网络编程时的注释问题
May 06 Python
Python selenium 三种等待方式详解(必会)
Sep 15 Python
分享一个可以生成各种进制格式IP的小工具实例代码
Jul 28 Python
Python+Turtle动态绘制一棵树实例分享
Jan 16 Python
django1.11.1 models 数据库同步方法
May 30 Python
Python实现快速计算词频功能示例
Jun 25 Python
Python 访问限制 private public的详细介绍
Oct 16 Python
python实现给scatter设置颜色渐变条colorbar的方法
Dec 13 Python
Python简单基础小程序的实例代码
Apr 28 Python
Python搭建Spark分布式集群环境
Jul 05 Python
Python计算IV值的示例讲解
Feb 28 Python
Python装饰器结合递归原理解析
Jul 02 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数组操作
2011/12/30 PHP
PHP实现Soap通讯的方法
2014/11/03 PHP
WordPress中重置文章循环的rewind_posts()函数讲解
2016/01/11 PHP
js的闭包的一个示例说明
2008/11/18 Javascript
javascript与webservice的通信实现代码
2010/12/25 Javascript
js中复制行和删除行的操作实例
2013/06/25 Javascript
extjs中form与grid交互数据(record)的方法
2013/08/29 Javascript
你所不了解的javascript操作DOM的细节知识点(一)
2015/06/17 Javascript
BootStrap的弹出框(Popover)支持鼠标移到弹出层上弹窗层不隐藏的原因及解决办法
2016/04/03 Javascript
AngularJS实现在ng-Options加上index的解决方法
2016/11/03 Javascript
jQuery html表格排序插件tablesorter使用方法详解
2017/02/10 Javascript
详解React-Native解决键盘遮挡问题(Keyboard遮挡问题)
2017/07/13 Javascript
Angularjs Promise实例详解
2018/03/15 Javascript
Nodejs 发布自己的npm包并制作成命令行工具的实例讲解
2018/05/15 NodeJs
产制造追溯系统之通过微信小程序实现移动端报表平台
2019/06/03 Javascript
js获取 gif 的帧数的代码实例
2019/09/10 Javascript
利用python打印出菱形、三角形以及矩形的方法实例
2017/08/08 Python
python利用有道翻译实现"语言翻译器"的功能实例
2017/11/14 Python
关于Django显示时间你应该知道的一些问题
2017/12/25 Python
python3读取csv和xlsx文件的实例
2018/06/22 Python
Pandas中DataFrame基本函数整理(小结)
2020/07/20 Python
北美三大旅游网站之一:Travelocity加拿大
2016/08/20 全球购物
Crocs卡骆驰洞洞鞋日本官方网站:Crocs日本
2016/08/25 全球购物
倩碧澳大利亚官网:Clinique澳大利亚
2019/07/22 全球购物
超市采购员岗位职责
2014/02/01 职场文书
施工员岗位职责
2014/03/16 职场文书
党员公开承诺事项
2014/03/25 职场文书
感恩父母的演讲稿
2014/05/06 职场文书
某某同志考察材料
2014/05/28 职场文书
酒店总经理岗位职责范本
2014/08/08 职场文书
教师纪念9.18事件演讲稿范文
2014/09/14 职场文书
2014年残联工作总结
2014/11/21 职场文书
2015小学五年级班主任工作总结
2015/05/21 职场文书
庆七一主持词
2015/06/29 职场文书
2016年10月份红领巾广播稿
2015/12/21 职场文书
俄罗斯十大城市人口排名,第三首都仅排第六,第二是北方首都
2022/03/20 杂记