Как правильно печатать вложенный список с самым высоким значением в 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
и Боб наш дядя, мы закончили!