从数据库复制字典中的键

2024-04-25 10:17:15 发布

您现在位置:Python中文网/ 问答频道 /正文

当我对数据库进行查询时,返回如下值:

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)

我想要的是创建一个字典,其中键是项的名称, 该值是一个列表,其中包括具有此名称的项目的所有价格的总和,以及该名称出现的小时数和次数的总和。对于每个单独的名称:

    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]

这里的最终目标是获得每个itemname的平均价格、平均小时数和总发生次数

    dict[name] = [average price,  average hours, total occurences]

你知道我能做些什么来让这件事更容易,更痛苦一点吗


Tags: name名称字典items次数pricemydictlight
1条回答
网友
1楼 · 发布于 2024-04-25 10:17:15

既然您已经在处理数据库,为什么不在查询中进行聚合呢

select NAME, SUM(PRICE) AS PRICE, SUM(HOURS) AS HOURS, COUNT(*) AS OCCURENCE
from ...
group by NAME

相关问题 更多 >