Как передать элемент из сортируемого списка в лямбду, которая используется в качестве ключевой функции для сортировки?Python

Программы на Python
Anonymous
Как передать элемент из сортируемого списка в лямбду, которая используется в качестве ключевой функции для сортировки?

Сообщение Anonymous »

У меня есть функция, которая оценивает некоторые параметры первого полученного аргумента (здесь item):

Код: Выделить всё

def item_fitness(
item,
fitness_criterion1,
fitness_criterion2
) -> int:
...
return val
Неважно, что он на самом деле делает. Все, что имеет значение, это то, что он принимает Fitness_criterion1 и Fitness_criterion2 для проверки параметров элемента и возвращает некоторую оценку пригодности.
Я бы хотелось бы использовать эту функцию в качестве функции сортировки в sorted() следующим образом:

Код: Выделить всё

def some_function(items, crit1, crit2):
items = sorted(
items,
key=lambda item, crit1, crit2: item_fitness(
item,
crit1,
crit2
),
reverse=True
)

# Do something with the sorted items

return something
где элемент взят из элементов (фактический список экземпляров элемента, который сортируется()). p>
Как бы я это сделал? Функция также вызывается в другом месте с конкретными элементами из items.


Подробнее здесь: https://stackoverflow.com/questions/790 ... -as-the-ke

Вернуться в «Python»