Python 不同对象比较大小示例探讨

431次阅读  |  发布于5年以前

万恶的源泉:

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

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8