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写入已存在的excel数据实例
May 03 Python
PyCharm代码回滚,恢复历史版本的解决方法
Oct 22 Python
python事件驱动event实现详解
Nov 21 Python
Python实现字典排序、按照list中字典的某个key排序的方法示例
Dec 18 Python
Python实现的大数据分析操作系统日志功能示例
Feb 11 Python
pycharm访问mysql数据库的方法步骤
Jun 18 Python
python 字典操作提取key,value的方法
Jun 26 Python
python全栈知识点总结
Jul 01 Python
Python异常处理例题整理
Jul 07 Python
Tensorflow 实现分批量读取数据
Jan 04 Python
JupyterNotebook 输出窗口的显示效果调整方法
Apr 13 Python
python中Pexpect的工作流程实例讲解
Mar 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
Protoss魔法科技
2020/03/14 星际争霸
PHP 清空varnish 缓存的详解(包括指定站点下的)
2013/06/20 PHP
destoon整合UCenter图文教程
2014/06/21 PHP
PHP中执行cmd命令的方法
2014/10/11 PHP
php+html5基于websocket实现聊天室的方法
2015/07/17 PHP
ThinkPHP中数据操作案例分析
2015/09/27 PHP
PHP+ajax分页实例简析
2015/12/07 PHP
利用jQuery操作对象数组的实现代码
2011/04/27 Javascript
二叉树的非递归后序遍历算法实例详解
2014/02/07 Javascript
整理AngularJS中的一些常用指令
2015/06/16 Javascript
高效利用Angular中内置服务$http、$location等
2016/03/22 Javascript
Google 地图叠加层实例讲解
2016/08/06 Javascript
Angular2 (RC4) 路由与导航详解
2016/09/21 Javascript
JS实现json的序列化和反序列化功能示例
2017/06/13 Javascript
Angular.js中下拉框实现渲染html的方法
2017/06/18 Javascript
javascript实现Java中的Map对象功能的实例详解
2017/08/21 Javascript
vue实现某元素吸顶或固定位置显示(监听滚动事件)
2017/12/13 Javascript
Angular简单验证功能示例
2017/12/22 Javascript
利用JS动态生成隔行换色HTML表格的两种方法
2018/10/09 Javascript
微信小程序生成二维码的示例代码
2019/03/29 Javascript
微信小程序官方动态自定义底部tabBar的例子
2019/09/04 Javascript
[01:28:31]《加油DOTA》真人秀 第五期
2014/09/01 DOTA
python中__slots__用法实例
2015/06/04 Python
win与linux系统中python requests 安装
2016/12/04 Python
基于python log取对数详解
2018/06/08 Python
基于python读取.mat文件并取出信息
2019/12/16 Python
详解如何在登录过期后跳出Ifram框架
2020/09/10 HTML / CSS
台湾东南旅游社网站:东南旅游
2019/02/11 全球购物
NICKIS.com荷兰:设计师儿童时装
2020/01/08 全球购物
上课迟到检讨书100字
2014/01/11 职场文书
党员岗位承诺口号大全
2014/03/28 职场文书
机电专业毕业生求职信
2014/07/01 职场文书
初中生庆国庆演讲稿范文2014
2014/09/25 职场文书
三方股东合作协议书范本
2014/09/28 职场文书
导游词之山西-五老峰
2019/10/07 职场文书
阿里云 Windows server 2019 配置FTP
2022/04/28 Servers