Python不同类型的比较
示例
可以比较不同类型的对象。结果是任意的,但是是一致的。它们的排序方式None要比其他任何方式都要少,数字类型要比非数字类型要小,其他所有内容都按类型按字典顺序排序。因此,anint小于astr且atuple大于alist:
[1, 2] > 'foo' #出:错误 (1, 2) > 'foo' #出:真 [1, 2] > (1, 2) #出:错误 100 < [1, 'x'] < 'xyz' < (1, 'x') #出:真
最初这样做是为了对混合类型的列表进行排序,然后按类型将对象分组在一起:
l = [7, 'x', (1, 2), [5, 6], 5, 8.0, 'y', 1.2, [7, 8], 'z'] sorted(l) #Out:[1.2,5,7,8.0,[5,6],[7,8],'x','y','z',(1,2)]
比较不同(非数字)类型时会引发异常:
1 < 1.5 #出:真 [1, 2] > 'foo' # TypeError: unorderable types: list() > str() (1, 2) > 'foo' # TypeError: unorderable types: tuple() > str() [1, 2] > (1, 2) # TypeError: unorderable types: list() > tuple()