1. 程式人生 > >python中cmp內建函式的比較原理

python中cmp內建函式的比較原理

cmp( x, y):比較2個物件,前者小於後者返回-1,相等則返回0,大於後者返回1.

Python的cmp比較函式,如果我們比較的是兩個同類的物件,比較操作是非常直觀的。

  • 數字和字串的比較,直接比較它們的值。
     
  • 對於序列型別的比較,方式上有相似。Python在兩個物件基本不能比較的時候儘量做出公平的結果。比如當兩個物件沒有關係時,或者兩種型別根本就沒有用於比較的函式時,這時 Python只能根據"邏輯"來做出結論。比較的演算法邏輯:
    1.   對兩個列表的元素進行比較.
    2.   如果比較的元素是同類型的,則比較其值,返回結果.
    3.   如果兩個元素不是同一種類型,則檢查它們是否是數字.
         a. 如果是數字,執行必要的數字強制型別轉換,然後比較.
         b. 如果有一方的元素是數字,則另一方的元素"大"(數字是"最小的")
         c. 否則,通過型別名字的字母順序進行比較.
    4.   如果有一個列表首先到達末尾,則另一個長一點的列表"大".
    5.   如果我們用盡了兩個列表的元素而且所有元素都是相等的,那麼結果就是個平局,就
    是說返回一個 0.

這就是Python的cmp函式比較原理 了。