Python将int,float等与列表进行比较

ast*_*st4 2 python

所以这一直困扰着我,我无法在网上找到任何关于它的信息.有人可以在python中解释这个行为吗?为什么它返回True而不是抛出异常?谢谢

In [1]: 1 < [1, 2, 3]
Out[1]: True
Run Code Online (Sandbox Code Playgroud)

DSM*_*DSM 9

确实抛出异常 - 无论如何,这些天:

$ python3
Python 3.3.0 (default, Apr 17 2013, 13:40:43) 
[GCC 4.6.3] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 1 < [1,2,3]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unorderable types: int() < list()
Run Code Online (Sandbox Code Playgroud)

Python过去常常让比较像这样通过,因为有时候能够在异构容器中自动排序所有东西都很方便,但这导致了更多的错误而不是方便,所以它在Python 3中修复了.

  • @Marcin:我花了大部分工作时间(包括现在,实际上)用Python 2.7编写,所以我不确定我怎么认为它已经过时了,或者为什么我会这么说.但是,它确实不是Python开发的前沿,而且现在已经有很多年的Python 3开发,其中有3.4个正在开发中,所以我认为"过去的日子"是合理的.无论如何,有[其他人](http://stackoverflow.com/users/241039/oleh-prypin)使用完全相反的标准进行downvote,所以我想这一切最终都会平衡! (3认同)