У меня есть функция, которая возвращает значения для некоторого списка действий. Мне нужно получить (действие, значение) кортеж для минимального или максимального значения (в зависимости от minmaxFunction).Pythonic способ решить небольшую задачу
minmaxFunction и может быть либо мин или макс:
minmaxFunction = min
or
minmaxFunction = max
Сейчас я использую:
bestValue = None
bestAction = None
for action in moves:
subValue = someFunction(action)
if bestValue is None or minmaxFunction(bestValue, subValue) != bestValue:
bestValue = subValue
bestAction = action
return bestAction, bestValue
Я уверен, что есть лучший (вещий) способ сделать это. Может быть что-то вроде
listOfTuples = [(action, someFunction(action)) for action in moves]
and here something with reduce() ????
Хотите ли вы решение в Python 2.7 или Python 3.x? Я предполагаю, что оба тега могут означать, что решение может быть в другой версии, чем то, что вы используете в настоящее время. – juhist
Ваш код неверен: после 'if' нет отступов, поэтому неясно, должна ли одна или две строки кода находиться внутри' if'. Кроме того, похоже, вы не ожидаете, что мы напишем 'minmaxFunction'; не могли бы вы предоставить его определение? – juhist
@juhist Будет интересно иметь для обоих, но мне действительно нужен Python 2.7. Я добавляю уточнение для minmaxFunction – Avt