我有一个嵌套列表,我试图得到总和并打印出单个数字加在一起时具有最高数值的列表
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])
我已经能够打印出结果,但我认为应该有一种简单且更加Pythonic的方式(可能使用列表理解)。
我该怎么做?
答案 0 :(得分:13)
怎么样:
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
中的元素,我们已经完成了!