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升级提示Tkinter模块找不到的解决方法
Aug 22 Python
在Python3中初学者应会的一些基本的提升效率的小技巧
Mar 31 Python
python selenium 对浏览器标签页进行关闭和切换的方法
May 21 Python
python实现屏保计时器的示例代码
Aug 08 Python
树莓派实现移动拍照
Jun 22 Python
Python 字符串类型列表转换成真正列表类型过程解析
Aug 26 Python
python tkinter控件布局项目实例
Nov 04 Python
如何通过python实现人脸识别验证
Jan 17 Python
python正则表达式实例代码
Mar 03 Python
python实时监控logstash日志代码
Apr 27 Python
Python 使用SFTP和FTP实现对服务器的文件下载功能
Dec 17 Python
pytho matplotlib工具栏源码探析一之禁用工具栏、默认工具栏和工具栏管理器三种模式的差异
Feb 25 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
hessian 在PHP中的使用介绍
2010/12/13 PHP
php脚本运行时的超时机制详解
2016/02/17 PHP
PHP实现可自定义样式的分页类
2016/03/29 PHP
PHP中quotemeta()函数的用法讲解
2019/04/04 PHP
优化innerHTML操作(提高代码执行效率)
2011/08/20 Javascript
你一定会收藏的Nodejs代码片段
2016/02/04 NodeJs
JavaScript常用数组算法小结
2016/02/13 Javascript
jQuery实现点击行选中或取消CheckBox的方法
2016/08/01 Javascript
浅谈toLowerCase和toLocaleLowerCase的区别
2016/08/15 Javascript
jQuery异步提交表单的两种方式
2016/09/13 Javascript
深入理解jQuery.data() 的实现方式
2016/11/30 Javascript
jquery hover 不停闪动问题的解决方法(亦为stop()的使用)
2017/02/10 Javascript
AngularJS封装$http.post()实例详解
2017/05/06 Javascript
基于vue-cli npm run build之后vendor.js文件过大的解决方法
2018/09/27 Javascript
小程序开发踩坑:页面窗口定位(相对于浏览器定位)(推荐)
2019/04/25 Javascript
详解微信小程序缓存--缓存时效性
2019/05/02 Javascript
React 实现车牌键盘的示例代码
2019/12/20 Javascript
[01:04:08]完美世界DOTA2联赛PWL S3 INK ICE vs GXR 第一场 12.16
2020/12/18 DOTA
python3 遍历删除特定后缀名文件的方法
2018/04/23 Python
Python中实现变量赋值传递时的引用和拷贝方法
2018/04/29 Python
python使用正则筛选信用卡
2019/01/27 Python
python实现植物大战僵尸游戏实例代码
2019/06/10 Python
用python求一个数组的和与平均值的实现方法
2019/06/29 Python
pandas read_excel()和to_excel()函数解析
2019/09/19 Python
python绘制随机网络图形示例
2019/11/21 Python
Python *args和**kwargs用法实例解析
2020/03/02 Python
ghd官网:英国ghd直发器品牌
2018/05/04 全球购物
三星英国官网:Samsung英国
2018/09/25 全球购物
PHP高级工程师面试问题推荐
2013/01/18 面试题
异常和异常类的概念
2014/09/12 面试题
历史专业个人求职信范文
2013/12/07 职场文书
大型活动策划方案
2014/01/12 职场文书
市场总监岗位职责
2015/02/11 职场文书
大学学生个人总结
2015/02/15 职场文书
交通安全温馨提示语
2015/07/14 职场文书
JavaScript的function函数详细介绍
2021/11/20 Javascript