В 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)
? - person SilentGhost   schedule 28.03.2010