gpt4 book ai didi

python - 将排序从 Python2 转换为 Python3

转载 作者:行者123 更新时间:2023-11-30 22:07:45 25 4
gpt4 key购买 nike

我已经用 Python2 编写了一个排序,我正在尝试将其转换为 Python3,Python3 要求提供 key 并表示没有更多 cmp 函数可用:

test.sort(lambda x, y: cmp(x[2],y[2]) or cmp(x[4], y[4]) or cmp(y[9], x[9]))

有什么建议吗?

最诚挚的问候,

最佳答案

Python 3 官方文档 explains in this section将其从 python 2 转换为 3 的正确方法。

原来的cmp函数只是做类似的事情

def cmp(x, y):
if x == y:
return 0
elif x > y:
return 1
else:
return -1

也就是说,它相当于sign(x-y),但也支持字符串和其他数据类型。

但是,您的问题是,sort 的当前函数不能与具有两个参数的比较函数一起使用,而是与一个参数的单个 key 函数一起使用。 Python 提供了 functools.cmp_to_key 来帮助您转换它,因此,请执行类似的操作

test.sort(key = functools.cmp_to_key(
lambda x, y: cmp(x[2],y[2]) or cmp(x[4], y[4]) or cmp(y[9], x[9])
))

关于python - 将排序从 Python2 转换为 Python3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52385280/

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