Просто пытаюсь дать вам более надежное решение. Хотя приведенный выше ответ довольно на мой взгляд.

у меня есть список, который содержит несколько параллельных списков объектов, и я хочу найти максимальное значение одного индекса в списке, в данном случае [5].

Как только я получу максимальное значение, как мне найти, где это происходит, и вернуть первый элемент этого списка?

Например,inputlist = [[70, 'Cherry St,', 43.684371, -79.316756, 23, 9, 14, True, True], [78, 'Cow Rd', 43.683378, -79.322961, 15, 13, 2, True, False]]

Как я могу заставить мою функцию возвращать 78, так как она содержит максимальное значение индекса [5] в моем списке списков?

 TerryA26 окт. 2017 г., 03:34
Я отредактировал свой ответ
 Jamie26 окт. 2017 г., 03:30
Извините, я имел в виду 78. Первые два элемента каждого подсписка представляют идентификатор того, что я ищу
 TerryA26 окт. 2017 г., 03:22
Почему70? Разве вы не имеете в виду13? Так как из двух значений вL[5] для каждого подсписка 13> 9

Ответы на вопрос(2)

Решение Вопроса

Использоватьmax() функция, но передайте аргумент для проверки определенного индекса:

max(inputList, key=lambda x: x[5])

Это возвращает список вinputList это имеет наибольшее значение в индексе 5. Если вы хотите получить доступ к этому значению, добавьте[5] до конца заявления.

Поскольку кажется, что вам нужен идентификатор списка с максимальным 5-м элементом, добавьте[0] к концу:

max(inputList, key=lambda x: x[5])[0]
 Jamie26 окт. 2017 г., 03:34
Есть ли другой способ повторить это без использования ключа = лямбда?
 TerryA26 окт. 2017 г., 03:34
@Jamie Вы можете вручную использовать цикл for и найти максимум, не используяmax() функция, но это вроде противоречит всей идее Python
 Rockybilly26 окт. 2017 г., 03:30
Можно предложитьitemgetter вместоlambda stackoverflow.com/questions/17243620/...Хотя нет разницы в маленьких и средних списках.

что вы можете сделать, используя понимание списка дважды

inputlist = [[70, 'Cherry St,', 43.684371, -79.316756, 23, 9, 14, True, True],
[78, 'Cow Rd', 43.683378, -79.322961, 15, 13, 2, True, False]]

Максимальное значение по 5-му индексу, учитывая весь список во входном списке. Вы можете использовать это для любого (n) нет списка участников.

value_5th = max([listt[5] for listt in inputlist])

Как только вы достигнете этого:

Это даст вам первый элемент этого списка элементов, который имеет самый большой элемент / max в 5-м индексе среди всех остальных списков членов. Обратите внимание, что это будет работать, даже если несколько списков элементов имеют одинаковый элемент max в своем 5-м индексе.

Your_ans = [ listt[0] for listt in inputlist if value_5th in listt]

Просто пытаюсь дать вам более надежное решение. Хотя приведенный выше ответ довольно на мой взгляд.

Ваш ответ на вопрос