Python 如何按名称对列表中的数字求和
我有以下列表(已按名称排序): 我想要此输出(具有相对和的唯一名称): 列表列表将被更新…所以不是一个有限的列表列表。可以有三个以上的名称,每个名称可以有两个以上的数字,例如:Python 如何按名称对列表中的数字求和,python,Python,我有以下列表(已按名称排序): 我想要此输出(具有相对和的唯一名称): 列表列表将被更新…所以不是一个有限的列表列表。可以有三个以上的名称,每个名称可以有两个以上的数字,例如: [['Argo',2],['Argo',9],['Argo',20],['Gim',1],['Gim',7],['Sam',10],['Ted',10],['Ted',10]] 您可以尝试以下方法: from collections import defaultdict d = defaultdict(int) p
[['Argo',2],['Argo',9],['Argo',20],['Gim',1],['Gim',7],['Sam',10],['Ted',10],['Ted',10]]
您可以尝试以下方法:
from collections import defaultdict
d = defaultdict(int)
people = [["Argo",2],["Argo",9],["Gim",1],["Gim",7],["Sam",10]]
for i in people:
d[i[0]] += i[1]
for i in d:
the_sum = d[i]
d[i] = the_sum/float([b[0] for b in people].count(i))
new_list = [[a, b] for a, b in d.items()]
new_val = sorted(new_list, key=lambda x: x[0])
通过使用defaultdict,您可以在遍历人员时更新与每个人关联的值。
输出:
您可以创建一个字典来汇总这些值,然后将其写回列表列表(如果您确实需要它作为列表)
你尝试过什么?你是否尝试过写一些东西,以便我们可以查看和调试,或者你只是想让我们为你编写代码?是的,他们正在寻找一种不是求和而是求平均值的方法?[Argo',5.5],[Gim',4],[Sam',10]]
[['Argo',2],['Argo',9],['Argo',20],['Gim',1],['Gim',7],['Sam',10],['Ted',10],['Ted',10]]
from collections import defaultdict
d = defaultdict(int)
people = [["Argo",2],["Argo",9],["Gim",1],["Gim",7],["Sam",10]]
for i in people:
d[i[0]] += i[1]
for i in d:
the_sum = d[i]
d[i] = the_sum/float([b[0] for b in people].count(i))
new_list = [[a, b] for a, b in d.items()]
new_val = sorted(new_list, key=lambda x: x[0])
[['Argo', 5.5], ['Gim', 4.0], ['Sam', 10.0]]
name_dict = dict()
for l in your_list:
if l[0] in name_dict:
name_dict[1] += l[1]
else:
name_dict[1] = l[1]