Задача на поиск списка с максимальной суммой элементов
Представим, что у нас есть список со списками и нам нужно найти вложенный список с максимальной суммой элементов. Как бы вы решили эту задачу? Пока вы думаете, давайте рассмотрим несколько возможных вариантов решения на Python от самого громоздкого до «однострочника».
10К открытий11К показов
Представим, что у нас есть список со списками и нам нужно найти вложенный список с максимальной суммой элементов. Задача звучит довольно просто, и решение «в лоб» приходит незамедлительно. Но зачем идти очевидным путём, когда есть более утончённый? Давайте рассмотрим несколько возможных вариантов решения на Python от самого громоздкого до «однострочника».
Способ 1. Обход вложенных списков
Мы можем просто обойти вложенные списки, сложить все элементы в каждом из них и с помощью функции max()
найти наибольшую сумму:
Способ 2. Обход внешнего списка
Ещё можно обойти только внешний список и сложить элементы вложенных с помощью функции sum()
, а затем найти максимальную сумму с помощью уже знакомой функции max()
:
Способ 3. Функции sum и max
Ещё один способ заключается в сочетании функций sum()
и max()
:
Прим. перев. Кроме того, возможна реализация с помощью параметра key
функции max()
:
Параметр key=sum
позволяет найти сумму элементов списка в списке; max(list_of_lists, key=sum)
находит список с максимальной суммой элементов, а sum(max(list_of_lists, key=sum))
возвращает сумму элементов этого списка.
10К открытий11К показов