我有一个 Python3 代码,它返回 2 个字典(都具有相同的索引),第一个字典包含名称列表,第二个包含列表分数。
对于每个索引,列表可能包含重复的名称,也可能包含不同的名称,如下面的代码所示。
我如何获得字典的每个索引,列表中每个人的平均值
我尝试对索引进行嵌套 for 循环以提取每个索引的列表
然后我在名称列表中的每个项目上循环,保存名称的索引,然后重新循环分数以获得平均值
names = {"0":['name1', 'name1', 'name2', 'name1'] , "1":['name1', 'name2', 'name2', 'name2', 'name2']}
scores = {"0":[0.5, 0.5, 1, 0.2], "1":[0.2, 0.8, 0.8, 0.9, 0.9]}
for ind in names:
namelist = names[ind]
scoreist = scores[ind] #as ind in names is the same as in scores
.
.
.
indices = list()
counter = 0
tempname = namelist[0]
for name in names:
if name == tempname:
indices.append(counter)
counter += 1
total = 0
for index in indicies:
total += scorlist[index]
average = total / scorelist
.
.
.
然后我弹出列表的索引并重新迭代。我知道应该有一种更快、更干净的方法来做到这一点,而不是在 while 循环中嵌套 for 循环......
编辑:
输出应该是这样的
{"0": [['name1',0.3], ['name2', 0.25]], "1":[['name1', 0.05], ['name2', 0.68]]}
烙印99
Cats萌萌
慕标5832272
肥皂起泡泡
随时随地看视频慕课网APP
相关分类