python - 为什么“5 in range(5,6) in [range(5,6)]”返回True?
问题描述
我是 Python 新手,碰巧注意到5 in range(5,6) in [range(5,6)]
返回True
。有人可以向我解释这背后的逻辑是什么吗?这条线不等于True in [range(5,6)]
吗?为什么不?它是如何工作的?
谢谢 :)
解决方案
Python 允许您“链接”比较运算符(来自文档):
比较可以任意链接,例如,
x < y <= z
等价于x < y and y <= z
,除了y
只评估一次(但在两种情况下,当发现为假z
时根本不评估)。x < y
并in
算作上述引用中的比较运算符。所以表达式等价于:
5 in range(5, 6) and range(5, 6) in [range(5, 6)]
也就是说True
,因为5
在那个范围内,并且range(5, 6)
在那个列表中。
推荐阅读
- r - 重复一个函数并记录每次运行的结果
- xml - 有没有办法在列表项前面的特定距离处打印属性值?
- reactjs - 如何在真实设备上运行离子反应应用程序?
- java - 找不到合适的屏幕尺寸
- java - 如何选择单个数组Java中最小元素的最大索引
- python - 如何链接功能?
- amazon-web-services - Terraform:如何导入 AWS 跨账户资源?
- python-3.x - 我想用 python 拆分 zip 文件,然后将拆分后的文件连接在一起,我找到了这段代码,但我无法加入拆分后的文件
- sonarqube - SonarQube 在加载页面上停止
- python - 由于 win32api,ToastNotifier 无法正常工作