【发布时间】:2013-06-28 19:03:37
【问题描述】:
背景
我一直在试图弄清楚为什么我的 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?)
似乎列表总是小于元组。
这不是我对documentation 的期望
元组和列表使用比较的字典顺序进行比较 对应的元素。这意味着要比较相等,每个元素 必须比较相等并且两个序列必须是相同的类型并且 长度相同。
如果不相等,则序列的顺序与它们的第一个相同 不同的元素。例如, cmp([1,2,x], [1,2,y]) 返回 与 cmp(x,y) 相同。如果对应的元素不存在,则 首先排序较短的序列(例如,[1,2]
问题
这里发生了什么?我是否允许比较元组和列表 - 或者我是否只允许比较同一类型与自身?
【问题讨论】:
标签: python