考虑元组列表

[(7751, 0.9407466053962708), (6631, 0.03942129), (7751, 0.1235432)]

在第一个数相似的情况下,如何用pythonic方法计算所有元组值的平均值?例如,答案必须是
[(7751, 0.532144902698135), (6631, 0.03942129)]

最佳答案

一种方法是使用collections.defaultdict

from collections import defaultdict
lst = [(7751, 0.9407466053962708), (6631, 0.03942129), (7751, 0.1235432)]
d_dict = defaultdict(list)
for k,v in lst:
    d_dict[k].append(v)

[(k,sum(v)/len(v)) for k,v in d_dict.items()]
#[(7751, 0.5321449026981354), (6631, 0.03942129)]

关于python - 计算第一个数字相似的所有元组值的平均值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48007236/

10-12 14:29