有没有一种方法可以从字典中的列表中的特定索引中获取项目(值)

时间:2020-09-08 03:13:59

标签: python python-3.7

我有一个字典,其键名分别为step1,step2,step3,并且每个键都有关联的值,这些值列出了每个值中包含5个项目。 我的要求是获取字典中每个项目的平均值:

mydict = {
    'step1': [0.94, 0.94, 0.94, 0.96, 0.94],
    'step2': [0.94, 0.94, 0.94, 0.94, 0.94], 
    'step3': [0.92, 0.86, 0.98, 0.92, 0.94]
}

作为硬代码,我可以编写此代码-但我想使其更加动态:

avg_each_item1 = (
    mydict['step1'][0]
    + mydict['step2'][0]
    + mydict['step3'][0]
    + mydict['step4'][0]
    + mydict['step5'][0]
) / 5

对此的任何快速提示都将受到高度赞赏

2 个答案:

答案 0 :(得分:1)

请查看此代码片段是否可以解决您的问题?

import numpy as np  # Make Sure You Have 'numpy' installed

mydict = {'step1': [0.94, 0.94, 0.94, 0.96, 0.94], 'step2': [
    0.94, 0.94, 0.94, 0.94, 0.94], 'step3': [0.92, 0.86, 0.98, 0.92, 0.94]}

for k, v in mydict.items():
    print("Average For", k, ":", np.average(mydict[k]))  # Calculating The Average for each step.

希望如此,此片段会有所帮助。

快乐编码!

答案 1 :(得分:0)

假设每个列表的大小都是预先知道的,您可以一行完成:

>>> [sum([mydict[j][i] for j in mydict])/len(mydict.keys()) for i in range(5)]
[0.9280000000000002, 0.892, 0.9640000000000001, 0.932, 0.9399999999999998]