如何使用Python3的sorted函数实现基于自定义标准的排序?

2026-05-28 21:180阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计727个文字,预计阅读时间需要3分钟。

如何使用Python3的sorted函数实现基于自定义标准的排序?

在Python2中,若想自定义评价标准的词,可以使用如下方式:

pythondef cmp(a, b): # 自定义比较逻辑 pass

在 python2 中,如果想要自定义评价标准的话,可以这么做

def cmp(a, b): # 如果逻辑上认为 a < b ,返回 -1 # 如果逻辑上认为 a > b , 返回 1 # 如果逻辑上认为 a == b, 返回 0 pass a = [2,3,1,2] a = sorted(a, cmp)

但是在 python3 中,cmp 这个参数已经被移除了,那么在 python3 中应该怎么实现 python2 的 cmp 功能呢?

import functools def cmp(a, b): if b < a: return -1 if a < b: return 1 return 0 a = [1, 2, 5, 4] print(sorted(a, key=functools.cmp_to_key(cmp)))

上面这个方法实现了降序排列,因为 -1 代表我们逻辑上认为 a<b ,而实际上 b<a 。

阅读全文

本文共计727个文字,预计阅读时间需要3分钟。

如何使用Python3的sorted函数实现基于自定义标准的排序?

在Python2中,若想自定义评价标准的词,可以使用如下方式:

pythondef cmp(a, b): # 自定义比较逻辑 pass

在 python2 中,如果想要自定义评价标准的话,可以这么做

def cmp(a, b): # 如果逻辑上认为 a < b ,返回 -1 # 如果逻辑上认为 a > b , 返回 1 # 如果逻辑上认为 a == b, 返回 0 pass a = [2,3,1,2] a = sorted(a, cmp)

但是在 python3 中,cmp 这个参数已经被移除了,那么在 python3 中应该怎么实现 python2 的 cmp 功能呢?

import functools def cmp(a, b): if b < a: return -1 if a < b: return 1 return 0 a = [1, 2, 5, 4] print(sorted(a, key=functools.cmp_to_key(cmp)))

上面这个方法实现了降序排列,因为 -1 代表我们逻辑上认为 a<b ,而实际上 b<a 。

阅读全文