Python 中的比較器
Vaibhhav Khetarpal
2023年10月10日
比較器
主要用於比較給定物件的兩個值。本教程討論了比較器
以及如何使用比較器
函式在 Python 中對陣列進行排序。
在 Python 中使用 cmp
引數和 sorted()
函式對陣列進行排序
此方法僅適用於 Python 2 版本,並在 Python 3 之後釋出的較新版本的 Python 中被移除。
早些時候,sorted()
方法有一個 cmp
引數,它利用比較器對給定的資料結構進行排序。
以下程式碼使用 cmp
引數和 sorted()
函式在 Python 2 中對陣列進行排序。
def compare(a, b):
return a[0] - b[0]
data = [(8, None), (7, None), (5, None), (4, None)]
print(sorted(data, cmp=compare))
上面的程式碼提供了以下輸出:
[(4, None), (5, None), (7, None), (8, None)]
在 Python 中使用 functools
庫對陣列進行排序
雖然我們可以在 Python 2 中使用 Python 提供的 cmp()
函式,但在 Python 3 中的較新版本中不存在該函式。comparators
的使用在較新版本的 Python 中受到限制。
比較器
函式用於在 sorted()
函式的幫助下對給定的資料結構進行排序。在 Python 3 中,我們使用 key
函式來執行自定義排序過程。
在這裡,我們使用 functools
庫中的 functools.cmp_to_key()
函式來將新過時的 cmp
函式轉換為 key
函式。
下面的程式碼使用比較器
函式對給定的資料結構進行排序。
from functools import cmp_to_key
def compare(a, b):
return a[0] - b[0]
data = [(8, None), (7, None), (5, None), (4, None)]
print(sorted(data, key=cmp_to_key(compare)))
上面的程式碼提供了以下輸出:
[(4, None), (5, None), (7, None), (8, None)]
Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.
LinkedIn