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