关于python3没有cmp,如何代替的问题?
展开全部
Python3自带了解决方案,在functools包中有一个把按cmp方式的写的函数转换成key方式函数的函数,用法如下
from functools import cmp_to_key
print(sorted(['bob','Bob','about','Zoo','Credit'], key=cmp_to_key(cmp_ignore_case)))
对你这个排序需求实际上用key方式完全可以达到求。
比如要先按每个单词的第2个字母排序再按第3个字母排序。
>>> from operator import itemgetter
>>> sorted(['bob','Bob','about','Zoo','Credit'], key=itemgetter(1,2))
['about', 'bob', 'Bob', 'Zoo', 'Credit']
展开全部
>>> sorted(['bob','Bob','about','Zoo','Credit'], key=str.lower)
['about', 'bob', 'Bob', 'Credit', 'Zoo']
忽略大小写的比较,先转小写作为键值排序
追问
那我如果需要做到自定义排序,通过自定函数来实现我需要的排序呢,例如:我需要根据单词的第二第三两个单词来排序的话。@.@
追答
把"根据单词的第二第三两个单词来排序"
可以理解成根据单词在前数列中的位置p为2或3时,然后去给键值加权生成需要的结果。
这句"根据单词的第二第三两个单词来排序"表述本身就太囫囵模糊,也就没有具体能实现的写法..
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询