cmp( x, y):比較2個對象,前者小於後者返回-1,相等則返回0,大於後者返回1.
Python的cmp函數可以比較同類型之間,或者不同數據類型之間。然後根據Python的cmp比較函數的返回值來判定比較大小。
>>> list1, list2 = [123, 'xyz'], [456, 'abc']
>>> cmp(list1, list2)
-1
>>> cmp(list2, list1)
1
>>> list3 = list2 + [789]
>>> list3
[456, 'abc', 789]
>>> cmp(list2, list3)
-1
觀察上面cmp函數的幾個比較,可以總結:
Python的cmp比較函數 ,如果我們比較的是兩個同類的對象,比較操作是非常直觀的。
1. 對兩個列表的元素進行比較.
2. 如果比較的元素是同類型的,則比較其值,返回結果.
3. 如果兩個元素不是同一種類型,則檢查它們是否是數字.
a. 如果是數字,執行必要的數字強制類型轉換,然後比較.
b. 如果有一方的元素是數字,則另一方的元素"大"(數字是"最小的")
c. 否則,通過類型名字的字母順序進行比較.
4. 如果有一個列表首先到達末尾,則另一個長一點的列表"大".
5. 如果我們用盡了兩個列表的元素而且所有元素都是相等的,那麼結果就是個平局,就
是說返回一個 0.
這就是Python的cmp函數比較原理 了。