Вы просите max()
найти самый большой список , а [2, 7]
больше [2, 3]
, поскольку списки упорядочены лексикографически .
Не сравнивайте списки.Используйте функцию key
для выбора первого целого числа:
max(my_list, key=lambda nested: nested[0])
Возвращает элемент из my_list
, для которого значение, возвращаемое функцией key
, является максимальным.В случае нескольких элементов с одинаковым максимумом возвращается первый такой элемент:
>>> my_list = [[1, 2], [2, 3], [2, 7]]
>>> max(my_list, key=lambda nested: nested[0])
[2, 3]
Далее, чтобы получить index этого элемента, передайте индексы в max()
,и функция key
отображает эти индексы на сравниваемое значение:
max(range(len(my_list)), key=lambda idx: my_list[idx][0])
Таким образом, для этого требуется последовательность целых чисел от 0 до (но не включая) длины вашего списка my_list
,затем использует функцию key
, чтобы вернуть первое целое число элемента с этим индексом в списке my_list
:
>>> my_list = [[1, 2], [2, 3], [2, 7]]
>>> max(range(len(my_list)), key=lambda idx: my_list[idx][0])
1