Python 元組 cmp() 方法



Python 元組cmp()方法用於比較兩個元組的元素。

元組的元素可以是相同或不同的資料型別。如果元素是相同型別,則比較它們並返回結果。如果元素是不同型別,則檢查它們是否為數字。

此方法進行的比較有兩種不同的情況。它們如下所示:

情況 1:假設元組僅包含數字,則該方法從左到右比較元素。如果在一個元組中遇到更大的數字,則包含它的元組被宣告為更大,並且進一步的比較將停止。但是,如果所有元素都相等,則元組被宣告為相等。

情況 2:如果元組中有多種資料型別,則該方法根據這些資料型別的順序進行比較並排序。例如,字串型別大於任何數字型別,因此,如果元組包含字串,則它更大。

注意:此方法僅在 Python 2.x 中可執行,在 Python 3.x 中不起作用。

語法

以下是 Python 元組cmp()方法的語法:

cmp(tuple1, tuple2)

引數

  • tuple1 - 這是要比較的第一個元組

  • tuple2 - 這是要比較的第二個元組

返回值

如果元素是相同型別,則執行比較並返回結果。如果元素是不同型別,則檢查它們是否為數字。

  • 如果是數字,則根據需要執行數字強制型別轉換並進行比較。

  • 如果任一元素是數字,則另一個元素“更大”(數字“最小”)。

  • 否則,按名稱按字母順序排序型別。

如果我們到達其中一個元組的末尾,則較長的元組“更大”。如果我們遍歷兩個元組並共享相同的資料,則結果是平局,這意味著返回 0。

示例

以下示例顯示了 Python 元組 cmp() 方法的用法。此程式僅在 Python 2.x 版本中執行。

tuple1, tuple2 = (123, 'xyz'), (456, 'abc')
print cmp(tuple1, tuple2)
print cmp(tuple2, tuple1)
tuple3 = tuple2 + (786,);
print cmp(tuple2, tuple3)

執行上述程式後,將產生以下結果:

-1
1
-1

示例

如果使用者希望在 Python 3.x 直譯器中執行此方法,則可以宣告一個使用者定義的函式,如給定示例中所示。此方法的工作方式類似於內建 cmp() 方法。

def cmp(x, y):
   return (x > y) - (x < y)
#x > y
x = (123)
y = (112)
print("The cmp value for x>y is : ",cmp(x, y),"\n")
#x<y
x = (123, 'xyz')
y = (456, 'abc')
print("The cmp value for x<y is : ",cmp(x, y),"\n")
#x=y
x = (76)
y = (76)
print("The cmp value for x=y is : ",cmp(x, y))
#odd and even
k = 16
if cmp(0, k % 2):
   print("\n","The given number",k,"is odd number ")
else:
   print("\n","The given number",k,"is even number")
k= 31
if cmp(0, k % 2):
   print("\n","The given number",k,"is odd number")
else:
   print("\n","The given number",k,"is even number")

執行上述程式碼將給出以下結果:

The cmp value for x>y is :  1 

The cmp value for x<y is :  -1 

The cmp value for x=y is :  0

 The given number 16 is even number

 The given number 31 is odd number
python_tuples.htm
廣告