首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Python 3中使用自定义比较函数?

如何在Python 3中使用自定义比较函数?
EN

Stack Overflow用户
提问于 2018-03-16 03:17:33
回答 2查看 0关注 0票数 0

Python2.x,我可以将自定义函数传递给排序函数和.Sort函数

>>> x=['kar','htar','har','ar']
>>>
>>> sorted(x)
['ar', 'har', 'htar', 'kar']
>>> 
>>> sorted(x,cmp=customsort)
['kar', 'htar', 'har', 'ar']

因为,在我的语言,辅音都伴随着这个顺序

"k","kh",....,"ht",..."h",...,"a"

但在Python 3.x,看上去我无法通过cmp关键词

>>> sorted(x,cmp=customsort)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'cmp' is an invalid keyword argument for this function

有没有其他的选择,或者我也应该写我自己的排序函数?

注:我用“k”、“kh”等词简化。实际的字符是Unicodes,甚至更复杂,有时会有元音出现在辅音前后,我已经做了自定义比较功能,所以这部分是可以的。唯一的问题是我无法将我的自定义比较函数传递到排序或.排序

EN

Stack Overflow用户

发布于 2018-03-16 12:23:36

使用key关键词和Functools.cmp_to_key若要转换比较功能,请执行以下操作:

sorted(x, key=functools.cmp_to_key(customsort))
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100007643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档