Я придумал следующее, и оно работает, как вы можете видеть с max
, min
и другими функциями над списками, подобными этим:
Итак, пожалуйста, рассмотрите следующий пример списка, чтобы узнать позицию максимум в списке a
:
>>> a = [3,2,1, 4,5]
Использование генератора enumerate
и создание кастинга
>>> list(enumerate(a))
[(0, 3), (1, 2), (2, 1), (3, 4), (4, 5)]
В этот момент мы можем извлечь позицию max с помощью
>>> max(enumerate(a), key=(lambda x: x[1]))
(4, 5)
. Выше сказано, что максимум находится в позиции 4, а его значение равно 5.
Как видите, в аргументе key
вы можете найти максимум для любого итерируемого объекта, определив соответствующую лямбду.
Я надеюсь, что это способствует.
PD: Как отметил @PaulOyster в комментарии.С Python 3.x
min
и max
позволяют новое ключевое слово default
, которое исключает исключение повышения ValueError
, когда аргумент является пустым списком.max(enumerate(list), key=(lambda x:x[1]), default = -1)