Python 不同对象比较大小


万恶的源泉:

Fireboo的疑问(当然 lambda 本身写的就有问题):

>>> filter( lambda x: x > 2, [ 1, [ 1, 2, 3 ], 2, 3 ] )
[[1, 2, 3], 3]

?:

>>> 1 < [ 1 ]
True
>>> int < list
True
>>> dict < int < list
True

>>> int < map
False


后来几经周折,和 Fireboo 讨论了下,是

1.不同对象比较(除了 number 之外),是按照 type names 比较,

2.当相同类型对象不支持适当比较的时候,采用 address 比较

3.list 与 list, tuple 与 tuple 采用字典序比较

>>> x = 1
>>> y = [ 1 ]
>>> type( x )
<type 'int'>
>>> type( y )
<type 'list'>
>>> x < y
True

>>> type( int )
<type 'type'>
>>> type( list )
<type 'type'>
>>> id( int )
505552912
>>> id( list )
505555336
>>> int < list
True

>>> type( map )
<type 'builtin_function_or_method'>
>>> type( list )
<type 'type'>
>>> map < list
True


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值