背景
我一直在试图弄清楚为什么我的 AI 一直在做出一些疯狂的举动,并且我将问题追溯到使用 Python 2.7.2 时的以下行为
>>> print [2]>[1]
True
>>> print (2,)>(1,)
True
>>> print [2]>(1,)
False (WHY?)
>>> print [2]<[1]
False
>>> print (2,)<(1,)
False
>>> print [2]<(1,)
True (WHY?)
它似乎表现得好像列表总是小于元组。
这不是我对文档的期望
元组和列表使用对应元素的比较按字典顺序进行比较。这意味着要比较相等,每个元素必须比较相等,并且两个序列必须是相同的类型并且具有相同的长度。
如果不相等,则序列的排序与其第一个不同的元素相同。例如, cmp([1,2,x], [1,2,y]) 返回与 cmp(x,y) 相同的结果。如果对应的元素不存在,则先排序较短的序列(例如,[1,2] < [1,2,3])。
问题
这里发生了什么?我是否允许比较元组和列表 - 或者我是否只允许将同一类型与其自身进行比较?