Python中的奇怪比较
发布时间:2020-12-20 11:30:37 所属栏目:Python 来源:网络整理
导读:参见英文答案 How do Python comparison operators and work with a function name as an operand?????????????????????????????????????1个 我在鬼混,偶然发现了一些我不理解的事情…… 问题1: a = [1,2,3]b = [1,3,4]len(a) b 结果是True,但这实际上是在
参见英文答案 >
How do Python comparison operators < and > work with a function name as an operand?????????????????????????????????????1个
我在鬼混,偶然发现了一些我不理解的事情…… 问题1: a = [1,2,3] b = [1,3,4] len(a) < b 结果是True,但这实际上是在比较两个列表的长度吗?似乎是因为这也是真的…… a = [15,32,7] len(a) < b 问题2: 当我们尝试将整数与列表进行比较时会发生什么?为什么这些都是真的(我假设有一般性解释……)…… 3 < b 20 < b float('inf') < b None < b (lambda x: (x**x)**x) < b ……这些都是假的? 'poo' < b '0' < b 解决方法
在Python 2.x中,使用类型名称比较不可直接比较的不同类型的项目.所以所有整数都小于所有列表,因为“int”小于“list”.出于同样的原因,所有的strs都大于所有的int和浮点数.
在Python 3中删除了这种不直观的行为(我假设这是因为类似类型的项在异类列表中排序),这为这些比较引发了一个例外. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |