В Python 2.x я мог передать пользовательскую функцию функциям sorted и .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» и т. Д. Фактические символы - это юникоды и даже более сложные, иногда гласные идут до и после компонентов, я сделал специальную функцию сравнения, так что эта часть в порядке. Только проблема в том, что я не смог передать свою пользовательскую функцию сравнения в sorted или .sort
sorted(x)
?