当我对我的数据库进行查询时,我会返回这样的值:
tuplematches = cursor.fetchall()
for items in tuplematches:
print(items)
打印为:
NAME/ PRICE/ HOURS/
1. ('honda accord 2nd light', 20.00, 10.0)
2. ('honda accord 2nd light', 22.00, 17.0)
3. ('chevy silverado headlight', 30.00, 20.0)
我想要的是创建一个字典,其中键是项目的名称, 并且该值是一个列表,其中包含具有此名称的项目的所有价格的总计,以及小时数和NAME发生次数之和。对于每个人的名字:
mydict[name] = [summed price, summed hours, occurences]
mydict['honda accord 2nd light'] = [42.00, 27.0, 2]
我已经尝试了几种不同的方法,但我无法弄清楚为什么,而不是给我非重复的名称作为其所有组合值的键,它给了我一个字典,其中包含多个不同的同名实例和它们自己的不同值,这对我没有好处。像这样:
mydict['honda accord 2nd light'] = [21.00, 13.5, 2]
mydict['honda accord 2nd light'] = [44.00, 27.0, 2]
mydict['honda accord 2nd light'] = [23.00, 19.0, 5]
这里的最终目标是获得每个项目名称的平均价格,平均小时数和总出现次数。
dict[name] = [average price, average hours, total occurences]
任何想法我能做些什么来让这更容易,更少痛苦?
答案 0 :(得分:0)
由于您已经在处理数据库,为什么不在查询中进行聚合?
select NAME, SUM(PRICE) AS PRICE, SUM(HOURS) AS HOURS, COUNT(*) AS OCCURENCE
from ...
group by NAME