Как правильно печатать вложенный список с самым высоким значением в Python

У меня есть вложенный список, и я пытаюсь получить сумму и распечатать список, который имеет наибольшее числовое значение, когда отдельные числа суммируются вместе

x = [[1,2,3],[4,5,6],[7,8,9]]
highest = list()

for i in x:
    highest.append(sum(i))

for ind, a in enumerate(highest):
    if a == max(highest):
        print(x[ind])

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

Как бы я это сделал?

1 ответов


как насчет:

print(max(x, key=sum))

демо:

>>> x = [[1,2,3],[4,5,6],[7,8,9]]
>>> print(max(x, key=sum))
[7, 8, 9]

это работает, потому что max (наряду с рядом других встроенных python, таких как min, sort ...) принимает функцию, которая будет использоваться для сравнения. В этом случае я просто сказал, что мы должны сравнить элементы в x на основе их индивидуальных sum и Боб наш дядя, мы закончили!