gpt4 book ai didi

python - 如何使用 cmp 将排序从 python 2 转换为 python 3?

转载 作者:太空狗 更新时间:2023-10-29 22:21:33 25 4
gpt4 key购买 nike

我正在尝试将这段用 python 2 编写的代码转换为 python 3

nums = ["30", "31"]
num.sort(cmp=lambda x, y: cmp(y + x, x + y))

不确定如何在 python 3 中执行此操作,因为 cmp 已被删除(我相信)

结果应该是 ["31", "30"] 而不是 ["30", "31"]

最佳答案

这是比较器比键函数干净得多的罕见情况之一。我实际上只是重新实现了 cmp:

try:
cmp
except NameError:
def cmp(x, y):
if x < y:
return -1
elif x > y:
return 1
else:
return 0

然后使用 functools.cmp_to_key将比较器转换为 Python 3 风格的键函数:

nums.sort(key=functools.cmp_to_key(lambda x, y: cmp(y+x, x+y)))

对于任何想知道这种奇怪的排序实际上做了什么的人,它会找到连接输入字符串以产生字典序最大输出字符串的顺序。当所有字符串都是数字序列时,输出具有可能的最高数值。

关于python - 如何使用 cmp 将排序从 python 2 转换为 python 3?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37603757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com