首页 > 解决方案 > 为什么“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

解决方案


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)在那个列表中。


推荐阅读