如何使用cmp从python 2转换为python 3?
发布时间:2020-05-23 02:02:37 所属栏目:Python 来源:互联网
导读:我正在尝试将这个用 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”] 这是比较器比关键功能更清洁
|
我正在尝试将这个用 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
然后使用 nums.sort(key=functools.cmp_to_key(lambda x,y: cmp(y+x,x+y))) 对于任何想知道这种奇怪排序实际上是什么的人,它会找到连接输入字符串以产生按字典顺序排列的最大输出字符串的顺序.当所有字符串都是数字序列时,输出具有尽可能高的数值. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
