如何让 sorted 函数支持自定义长尾词比较逻辑?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1594个文字,预计阅读时间需要7分钟。
在Python中,对一个可迭代对象进行排序是一个常见的操作,通常使用`sorted()`函数。以下是一个示例代码:
pythonnum_list=[4, 2, 8, -9, 1, -3]sorted_num_list=sorted(num_list)print(sorted_num_list)
在 Python 中对一个可迭代对象进行排序是很常见的一个操作,一般会用到 sorted() 函数
num_list = [4, 2, 8, -9, 1, -3] sorted_num_list = sorted(num_list) print(sorted_num_list)
上面的代码是对整数列表 num_list 按从小到大的顺序进行排序,得到的结果如下
[-9, -3, 1, 2, 4, 8]
有时候不仅仅是对元素本身进行排序,而是在元素值的基础上进行一些计算之后再进行比较,比如将 num_list 中的元素按照其平方值的大小进行排序。
在 Python 2 中,可以通过 sorted() 函数中的 cmp 或 key 参数来实现这种自定义的比较逻辑。cmp 比较函数接收两个参数 x 和 y(x 和 y 都是列表中元素)并且返回一个数字,如果返回正数表示 x > y,返回 0 表示 x == y,返回负数表示 x < y。key 函数接收一个参数,重新计算出一个结果,然后用计算出的结果参与排序比较。
本文共计1594个文字,预计阅读时间需要7分钟。
在Python中,对一个可迭代对象进行排序是一个常见的操作,通常使用`sorted()`函数。以下是一个示例代码:
pythonnum_list=[4, 2, 8, -9, 1, -3]sorted_num_list=sorted(num_list)print(sorted_num_list)
在 Python 中对一个可迭代对象进行排序是很常见的一个操作,一般会用到 sorted() 函数
num_list = [4, 2, 8, -9, 1, -3] sorted_num_list = sorted(num_list) print(sorted_num_list)
上面的代码是对整数列表 num_list 按从小到大的顺序进行排序,得到的结果如下
[-9, -3, 1, 2, 4, 8]
有时候不仅仅是对元素本身进行排序,而是在元素值的基础上进行一些计算之后再进行比较,比如将 num_list 中的元素按照其平方值的大小进行排序。
在 Python 2 中,可以通过 sorted() 函数中的 cmp 或 key 参数来实现这种自定义的比较逻辑。cmp 比较函数接收两个参数 x 和 y(x 和 y 都是列表中元素)并且返回一个数字,如果返回正数表示 x > y,返回 0 表示 x == y,返回负数表示 x < y。key 函数接收一个参数,重新计算出一个结果,然后用计算出的结果参与排序比较。

