当前位置: 首页 > news >正文

python中if in是什么意思_if语句中“ in”的使用和含义?

由于您声称习惯于JavaScript:

Python in运算子类似于JavaScript in运算子。

这是一些JavaScript:

var d = {1: 2, 3: 4};

if (1 in d) {

alert('true!');

}

和等效的Python:

d = {1: 2, 3: 4}

if 1 in d:

print('true!')

对于对象/字典,它们几乎相同,都检查1对象/字典的密钥是否。当然,最大的区别是JavaScript是草率类型的,所以'1' in d也是如此。

对于数组/列表,它们有很大的不同。JS数组是一个对象,其索引是键,所以1 in [3, 4, 5]将是true。Python列表与dict完全不同,它的in运算符检查值,而不是索引,这通常会更有用。Python将这种行为扩展到了所有可迭代对象。

使用字符串,它们甚至会有所不同。JS字符串不是对象,因此您将获得TypeError。但是Python str或unicode会检查另一个操作数是否是子字符串。(这1 in '123'是非法的,因为1它不能是任何东西的子串,但它'1' in '123'是真实的。)

以对象为对象,在JS中当然没有区别,但是在Python中,对象是类的实例,而不是字典。因此,在JS中,1 in d如果对象具有名为的成员或方法'1',则该参数为true ,但在Python中,这取决于类的含义-Python将调用d.__contains__(1),然后,如果失败,它将尝试将您的对象用作一个可发音的(通过调用其__iter__,如果失败,则尝试使用以开头的整数对其进行索引0)。

另外,请注意in,因为JS的实际上是在检查对象成员资格,所以通常进行JS方法的分辨率顺序搜索,而Python的in因为检查的是dict的键,序列的成员等,则不会执行此类操作。因此,从技术上讲,它可能hasOwnProperty比in操作员更接近该方法。

相关文章:

  • 利用python爬虫电影分析_python 爬虫分析30年香港电影
  • 汇编 无法修改显存中的内容_汇编语言
  • sql 去重求和_SQL知识大全(二):SQL的基础知识你都掌握了吗?
  • python 希尔伯特变换_Python中HHT(希尔伯特-黄变换)以及其在EEG数据处理中的应用...
  • 广义表head tail 运算_数据结构习题解答:多维数组和广义表 | 选择题
  • python求中位数的怎么编写_python计算分位数方法
  • 在anaconda安装python命令_Anaconda入门:安装及包与环境的管理(conda命令)
  • python创建提示用户输入查询条件_pythone-2:用户登录并根据条件查询
  • crontab类型的任务python_Linux 上使用 crontab 设置定时任务及运行 Python 代码不执行的解决方案...
  • python epoll多路复用技术_python 网络编程 IO多路复用之epoll
  • python的数字运算_Python中数字的相关运算:数学运算及函数运算
  • python的开发环境有哪些特点_Python集成开发环境有哪些
  • 导出数据表 跳过autoincrease_aTimeLogger按周导出的数据报表
  • python基础网易_python零基础入门命令方式汇总大全,快速恶补你的Python基础
  • python tableview刚开始没有数据很丑_一个TableView(并没有)循环刷新的现象与正确的做法...
  • 【编码】-360实习笔试编程题(二)-2016.03.29
  • 30秒的PHP代码片段(1)数组 - Array
  • opencv python Meanshift 和 Camshift
  • 如何选择开源的机器学习框架?
  • 深入浏览器事件循环的本质
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 世界上最简单的无等待算法(getAndIncrement)
  • 我看到的前端
  • 从如何停掉 Promise 链说起
  • #100天计划# 2013年9月29日
  • #Ubuntu(修改root信息)
  • (20050108)又读《平凡的世界》
  • (二)斐波那契Fabonacci函数
  • (二)基于wpr_simulation 的Ros机器人运动控制,gazebo仿真
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (离散数学)逻辑连接词
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (转)Sql Server 保留几位小数的两种做法
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .jks文件(JAVA KeyStore)
  • .NET Remoting Basic(10)-创建不同宿主的客户端与服务器端
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .Net中wcf服务生成及调用
  • .NET中使用Protobuffer 实现序列化和反序列化
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面
  • @FeignClient 调用另一个服务的test环境,实际上却调用了另一个环境testone的接口,这其中牵扯到k8s容器外容器内的问题,注册到eureka上的是容器外的旧版本...
  • @Validated和@Valid校验参数区别
  • [ Linux ] git工具的基本使用(仓库的构建,提交)
  • [ 云计算 | Azure 实践 ] 在 Azure 门户中创建 VM 虚拟机并进行验证
  • [20150904]exp slow.txt
  • [C/C++]数据结构----顺序表的实现(增删查改)
  • [CVPR 2023:3D Gaussian Splatting:实时的神经场渲染]
  • [Deep Learning] 神经网络基础
  • [Electron]ipcMain.on和ipcMain.handle的区别
  • [IE技巧] IE8中HTTP连接数目的变化
  • [Java]快速入门优先队列(堆)手撕相关面试题
  • [jobdu]不用加减乘除做加法
  • [Linux基础开发工具---vim]关于vim的介绍、vim如何配置及vim的基本操作方法