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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (189)

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,甚至更复杂,有时会有元音出现在辅音前后,我已经做了自定义比较功能,所以这部分是可以的。唯一的问题是我无法将我的自定义比较函数传递到排序或.排序

提问于
用户回答回答于
用户回答回答于

扫码关注云+社区

领取腾讯云代金券