在Python 2.x中,我可以将自定义函数传递给sort和.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”等进行了简化。实际字符是Unicode,甚至更复杂,有时在辅音前后都有元音,所以我完成了自定义比较功能,因此这一部分还可以。唯一的问题是我无法将自定义比较功能传递给sort或.sort
@SilentGhost,为确定起见,我只是再次尝试了,当然不能用,因为操作系统在我的语言列表中不支持我的原始语言来进行排序。
—
您
您可以将cmp包装为关键功能。在HowToSorting网站上搜索cmp_to_key。
—
Frank
sorted(x)
吗?