In Python 2.x , potevo passare la funzione personalizzata alle funzioni ordinate e .sort
>>> x=['kar','htar','har','ar']
>>>
>>> sorted(x)
['ar', 'har', 'htar', 'kar']
>>>
>>> sorted(x,cmp=customsort)
['kar', 'htar', 'har', 'ar']
Perché, nella mia lingua, le consonanze vengono fornite con quest'ordine
"k","kh",....,"ht",..."h",...,"a"
Ma in Python 3.x , sembra che non sia riuscito a passare la cmpparola chiave
>>> 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
Ci sono alternative o dovrei scrivere anche la mia funzione ordinata?
Nota: ho semplificato usando "k", "kh", ecc. I caratteri effettivi sono Unicode e anche più complicati, a volte ci sono vocali che vengono prima e dopo le consonanze, ho fatto una funzione di confronto personalizzata, quindi quella parte è ok. L'unico problema è che non sono riuscito a passare la mia funzione di confronto personalizzato a ordinato o .sort
sorted(x)?