En Python 2.x , podría pasar una función personalizada a funciones ordenadas y .sort
>>> x=['kar','htar','har','ar']
>>>
>>> sorted(x)
['ar', 'har', 'htar', 'kar']
>>>
>>> sorted(x,cmp=customsort)
['kar', 'htar', 'har', 'ar']
Porque, en mi idioma, los consonentes vienen con este orden
"k","kh",....,"ht",..."h",...,"a"
Pero en Python 3.x , parece que no pude pasar la cmp
palabra clave
>>> 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
¿Hay alguna alternativa o debería escribir mi propia función ordenada también?
Nota: simplifiqué usando "k", "kh", etc. Los caracteres reales son Unicodes e incluso más complicados, a veces hay vocales que vienen antes y después de los consonents, hice una función de comparación personalizada, así que esa parte está bien. El único problema es que no pude pasar mi función de comparación personalizada a sorted o .sort
sorted(x)
?