Поиск индекса максимального элемента из списка

Пусть v будет список чисел

v = [3,5,2,4,8,6,1]

Почему следующий код для поиска максимального элемента и его индекса дает ошибку? (Объект 'int' не подлежит подписке)

reduce(lambda x,y: max(x[1],y[1]), enumerate(v))

P.S. Я знаю, что есть другие способы сделать это, например, приведенный ниже, но я хочу понять, почему предыдущий не работает.

max(enumerate(v), key= lambda x: x[1])

Эпилог

Симеон указал, что мой код действительно неверен, потому что лямбда должна была вернуть кортеж, а не число. Понимая это, мой код можно легко исправить следующим образом :

reduce(lambda x,y: x[1]<y[1] and y or x, enumerate(v))

, который, кстати, примерно на 30% медленнее, чем

max(enumerate(v), key= lambda x: x[1])
6
задан martineau 28 April 2019 в 06:21
поделиться