Python列表cmp()方法

2019-10-16 23:05:58

Python列表cmp()方法比較兩個列表。

語法

以下是cmp()方法的語法 -

cmp(list1, list2)

引數

  • list1 - 這是要比較的第一個列表。
  • list2 - 這是第二個要比較的列表。

返回值

  • 如果元素的型別相同,則執行比較並返回結果。如果元素是不同的型別,則檢查它們是否是數位。
    • 如果數位,必要時進行數位強制比較。
    • 如果任一元素是數位,則另一個元素是「較大的」(數位值「最小」)。
    • 否則,型別按名稱按字母順序排序。

如果到達其中一個列表的末尾,則較長的列表是「較大的」。 如果排除兩個列表並共用相同的資料,結果返回0
如果 list1 < list2 返回 -1, 如果 x == y 返回 0, 如果 list > list2 返回 1

範例

以下範例顯示了cmp()方法的用法。

#!/usr/bin/python3

list1, list2 = [123, 'xyz'], [456, 'abc']

print cmp(list1, list2)
print cmp(list2, list1)
list3 = list2 + [786];
print cmp(list2, list3)

當執行上面的程式,它產生以下結果 -

-1
1
-1

注意:在python3中,不能使用這個函式

檢視python的幫助文件,在oprater這個模組中有了這麼幾個函式 -

operator.lt(a, b)   
operator.le(a, b)   
operator.eq(a, b)   
operator.ne(a, b)   
operator.ge(a, b)   
operator.gt(a, b)   
operator.__lt__(a, b)   
operator.__le__(a, b)   
operator.__eq__(a, b)   
operator.__ne__(a, b)   
operator.__ge__(a, b)   
operator.__gt__(a, b)

這幾個函式就是用來替換之前的cmp(),之前使用cmp的同胞們,以後就換上面這些函式。
下面簡單說下這幾個函式的意思 -

lt(a, b) 相當於 a < b
le(a,b) 相當於 a <= b
eq(a,b) 相當於 a == b
ne(a,b) 相當於 a != b
gt(a,b) 相當於 a > b
ge(a, b)相當於 a>= b