Пусть 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])