Skip to main content
 首页 » 编程设计

python之如何为列表中重复的每个值计算平均值

2025年05月04日12luoye11

我正在努力编写一个函数来遍历数字列表 [2, 4, 3, 2, 2] 并重新计算重复项的值,以便此示例中的所有 2将加在一起(=6),然后除以列表的长度。长度 = 5。 输出:[6/5, 4, 3, 6/5, 6/5]

每个数字都必须留在原位,输入列表中的数字可以是正数也可以是负数。 关于如何处理的任何想法?

请您参考如下方法:

首先,让我们导入 Counter 并定义您的列表:

>>> from collections import Counter 
>>> x = [2, 4, 3, 2, 2] 

其次,我们创建 ctr,它是 Counter 的一个实例,它将包含列表中每个元素出现的次数:

>>> ctr = Counter(x) 

最后,让我们创建您想要的新列表:

>>> [i if ctr[i]==1 else ctr[i]*i/len(x) for i in x] 
[1.2, 4, 3, 1.2, 1.2] 

i if ctr[i]==1 else ctr[i]*i/len(x) 是一个三元语句。如果 i 在 x 中只出现一次,它的计算结果为 i。否则,它的计算结果为 i 乘以 i 在 x 中出现的次数除以 x 的长度: ctr[i]*i/len(x).