如何遍历给定列表,找到元组第二个索引的平均值,并在python中存储在新列表中

如何遍历给定列表,找到元组第二个索引的平均值,并在python中存储在新列表中,python,list,average,Python,List,Average,我知道这是一个愚蠢的问题,但我是python新手,不知道怎么做。实际上,我已经从mysql数据库中检索到一些数据,并得到如下列表 [ (7, 80), (7, 40), (7, 100), (34, 100), (34, 20), (36, 60), (36, 40), (36, 100), (36, 60), ] 名单名称为“标准等级”。在像(7,80)这样的每个元组中,第一个元素是“id”,第二个元素是“rating”

我知道这是一个愚蠢的问题,但我是python新手,不知道怎么做。实际上,我已经从mysql数据库中检索到一些数据,并得到如下列表

[
    (7, 80),
    (7, 40),
    (7, 100),
    (34, 100),
    (34, 20),
    (36, 60),
    (36, 40),
    (36, 100),
    (36, 60),
]
名单名称为“标准等级”。在像(7,80)这样的每个元组中,第一个元素是“id”,第二个元素是“rating”的规范化值。我想要的是得到一个新的列表,其中我将有一个唯一的条目,每个“id”和“norm_rating”列表中的平均评分。就像我想要的新名单一样

[(7, 73.3), (34, 60), (36, 65)]

能给我一个python代码吗。

我会使用
itertools.groupby
将具有相同第一个元素的元组分组,然后只使用
statistics。mean
获得第二个元素的平均值:

>>> data = [(7, 80), (7, 40), (7, 100), (34, 100), (34, 20), (36, 60), (36, 40), (36, 100), (36, 60)]
>>> from itertools import groupby
>>> from statistics import mean
>>> [(n, mean(t[1] for t in group)) for n, group in groupby(data, lambda t: t[0])]
[(7, 73.33333333333333), (34, 60), (36, 65)]

Checkout
defaultdict
“我花了一整天的时间在它上面,但没能做到”向我们展示你写的内容,并解释你尝试使用它时出现的问题。我没有得到必要的输出。只是尝试使用循环和if-else语句,但得到的结果并不符合要求。不管怎样,告诉我们您现在在哪里。用例不同。仅仅是“需要python代码”就会导致很多困惑和可能没有帮助的答案!这对我来说确实有效。非常感谢你。你能告诉我你的联系方式吗?因为我还有一些问题,stackoverflow只允许我回答两个问题。我会非常感激的。