Python不同类型的比较
示例
Python 2.x 2.3可以比较不同类型的对象。结果是任意的,但是是一致的。它们的排序方式None要比其他任何方式都要少,数字类型要比非数字类型要小,其他所有内容都按类型按字典顺序排序。因此,anint小于astr且atuple大于a list:
[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']Python 3.x 3.0sorted(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()
要按类型对Python 3中的混合列表进行排序并实现版本之间的兼容性,您必须提供已排序函数的键:
>>> list = [1, 'hello', [3, 4], {'python': 2}, 'stackoverflow', 8, {'python': 3}, [5, 6]]>>> sorted(list, key=str)
# Out:[1、8,[3、4],[5、6],'hello','stackoverflow',{'python':2},{'python':3}]
使用str作为key函数的每个项目暂时转换为只为比较的目的的字符串。然后,它会看到以,或开头的字符串表示形式[,并且能够对它们(以及以下所有字符)进行排序。'{0-9
以上是 Python不同类型的比较 的全部内容, 来源链接: utcz.com/z/343167.html