python等级证书查询_查询和汇总列表中的证书元素

因此,我是python的新手,并且创建了如下所示的信息列表:

格式为日期,商店,当日总收入(当日)和交易(当日)

data = [[datetime.datetime(2012, 3, 1, 0), 'PizzaHut', 2839.60, 25], [datetime.datetime(2012, 12, 4, 0), 'Dominoes', 2839.60, 25], [datetime.datetime(2012, 11, 8, 0), 'Sals', 2839.60, 25], [datetime.datetime(2012, 6, 4, 0), 'Sals', 2839.60, 25], [datetime.datetime(2012, 8, 12, 0), 'PizzaHut', 2839.60, 25]

因此,本质上我想做的就是查询某个商店的总收入。因此,用户应输入“ Sals”,它将根据列表中的数据总计该商店的收入。解决这个问题的方法可能很简单,但是我一直在网上四处寻找,因此决定是时候让我问大家了。如果我能对它的工作方式有一些解释,那对我既有帮助,也能帮助我增进知识!谢谢大家的贡献!

解决方案

使用sum()

例如:

import datetime

data = [[datetime.datetime(2012, 3, 1, 0), 'PizzaHut', 2839.60, 25], [datetime.datetime(2012, 12, 4, 0), 'Dominoes', 2839.60, 25], [datetime.datetime(2012, 11, 8, 0), 'Sals', 2839.60, 25], [datetime.datetime(2012, 6, 4, 0), 'Sals', 2839.60, 25], [datetime.datetime(2012, 8, 12, 0), 'PizzaHut', 2839.60, 25]]

key = 'Sals'

print( sum(i[2] for i in data if i[1] == key) )

输出:

5679.2

根据评论编辑

import datetime

import collections

data = [[datetime.datetime(2012, 3, 1, 0), 'PizzaHut', 2839.60, 25], [datetime.datetime(2012, 12, 4, 0), 'Dominoes', 2839.60, 25], [datetime.datetime(2012, 11, 8, 0), 'Sals', 2839.60, 25], [datetime.datetime(2012, 6, 4, 0), 'Sals', 2839.60, 25], [datetime.datetime(2012, 8, 12, 0), 'PizzaHut', 2839.60, 25]]

key = 'Sals'

d = collections.defaultdict(list)

for i in data:

d[i[1]].append(i)

print( "Sum: {0}".format(sum(i[2] for i in d[key])) )

print( "Average: {0}".format(sum(i[2] for i in d[key])/len(d[key])) )

输出:

Sum: 5679.2

Average: 2839.6

按日期分组

key = datetime.datetime(2012, 12, 4, 0)

d = collections.defaultdict(list)

for i in data:

d[i[0]].append(i)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值