W Pythonie 2.x mogłem przekazać funkcję niestandardową do funkcji sortowanych i .sort
>>> x=['kar','htar','har','ar']
>>>
>>> sorted(x)
['ar', 'har', 'htar', 'kar']
>>>
>>> sorted(x,cmp=customsort)
['kar', 'htar', 'har', 'ar']
Ponieważ w moim języku w tej kolejności występują spółgłoski
"k","kh",....,"ht",..."h",...,"a"
Ale w Pythonie 3.x wygląda na to, że nie mogłem przekazać cmpsłowa kluczowego
>>> 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
Czy są jakieś alternatywy, czy też powinienem napisać własną posortowaną funkcję?
Uwaga: uprościłem, używając "k", "kh" itp. Rzeczywiste znaki to Unicody i jeszcze bardziej skomplikowane, czasami przed i po spółgłoskach pojawiają się samogłoski, zrobiłem niestandardową funkcję porównywania, więc ta część jest w porządku. Jedynym problemem jest to, że nie mogłem przekazać mojej niestandardowej funkcji porównania do sortowania lub .sort
sorted(x)?