У меня есть функция сравнения, которая заключена в functools.cmp_to_key
, поэтому я могу использовать ее при вызове sorted()
.
Проблема в том, что я уже использую itemgetter
в качестве ключа.Itemgetter используется для извлечения значения из словаря, и это значение используется для сортировки коллекции.
Итак, по сути, мне нужно использовать itemgetter для извлечения значений, а затемМне нужно использовать функцию сравнения, чтобы правильно их отсортировать.
Я пробовал следующие комбинации, но, похоже, ни одна из них не работает:
for x in range( 0, len(sort_columns) ):
comparer = cmp_to_key(sort_columns[x].sort_func)
results = sorted( data, key=comparer )
results = sorted( data, key=comparer(itemgetter( sort_columns[x] ) ) )
results = sorted( data, key=itemgetter( comparer( sort_columns[x] ) ) )
В тех случаях, когда конкретный компаратор не требуется, это просто называется:
results = sorted( data, key=itemgetter( sort_columns[x] ) )