一千萬個為什麽

搜索

在列表中列出元素並在Python中查找最大值

我不知道如何做到這一點: 我有一個定義如下的 listlist

list=[[day,type,expense],[...]];

day and expense are int, type is string

我需要找到白天的最大費用。一個例子:

list=[[1,'food',15],[4,'rent', 50],[1,'other',60],[8,'bills',40]]

我需要對同一天的要素進行總結,並找出支出最高的那一天。

結果應該是:

day:1, total expenses:75

最佳答案

data=[[1,'food',15],[4,'rent', 50],[1,'other',60],[8,'bills',40]]

# put same days together
data.sort()


# aggregate the days
from itertools import groupby
from operator import itemgetter

grouped = groupby(data, key=itemgetter(0))


# sum values by day
summed = ((day, sum(val for (_,_,val) in day_group))
          for day, day_group in grouped)


# get the max
print max(summed, key=itemgetter(1))

轉載註明原文: 在列表中列出元素並在Python中查找最大值