如何从字典中找到键,然后取平均值,中位数和范围


dictionary= {
  '49622150': {
    'exam2': '45',
    'homework': '64',
    'project': '15',
    'id': '49622150',
    'attendance': '39',
    'project2': '62',
    'exam1': '75'
  },
  '62138834': {
    'exam2': '74',
    'homework': '100',
    'project': '90',
    'id': '62138834',
    'attendance': '75',
    'project2': '33',
    'exam1': '30'
  },
  '91183775': {
    'exam2': '73',
    'homework': '39',
    'project': '77',
    'id': '91183775',
    'attendance': '59',
    'project2': '53',
    'exam1': '86'
  }
}

这就是我尝试过的,但我不知道如何找到键并将这些东西转换为整数而不是取平均值。

d={}
def examStats(dictionary): 
   for word in dictionary:
      if word == 'exam: 
           d['exam']=int(str('exam'))/2?
   print d

输出将是以下字典:

{"exam1": {"average": 58, "median": 60, "range":78}, "exam2": {"average": 65, "median": 69, "range":54}}
from collections import defaultdict
import numpy as np
d_dict = defaultdict(list)
dictionary = {'49622150': {'exam2': '45', 'homework': '64', 'project': '15', 'id': '49622150', 'attendance': '39', 'project2': '62', 'exam1': '75'}, '62138834': {'exam2': '74', 'homework': '100', 'project': '90', 'id': '62138834', 'attendance': '75', 'project2': '33', 'exam1': '30'}, '91183775': {'exam2': '73', 'homework': '39', 'project': '77', 'id': '91183775', 'attendance': '59', 'project2': '53', 'exam1': '86'}}
for k,v in dictionary.items():
    for i,j in v.items():
        d_dict[i].append(int(j))
keys = ['exam1','exam2']
d = {}
for k in keys:
    d[k] = { 'Average' : np.mean(d_dict[k]), 'Median' : np.median(d_dict[k]) ,'Range' : np.ptp(d_dict[k]) }
print d

输出:

{'exam2': {'Average': 64.0, 'Median': 73.0, 'Range': 29}, 'exam1': {'Average': 63.666666666666664, 'Median': 75.0, 'Range': 56}}
您可以使用

for k, v in dictionary.items()遍历字典。例如:

if __name__ == '__main__':
    for k, v in dictionary.items():
        print int(v['exam1'])
        print int(v['exam2'])
from collections import defaultdict
d = defaultdict(list)
for dic in [dics for dics in dictionary.values()]:
    for k,v in dic.items():
        d[k].append(int(v))
print(dict(d))

外:

{'attendance': [59, 75, 39],
 'exam1': [86, 30, 75],
 'exam2': [73, 74, 45],
 'homework': [39, 100, 64],
 'id': [91183775, 62138834, 49622150],
 'project': [77, 90, 15],
 'project2': [53, 33, 62]}

现在,您可以做任何您需要的事情

相关内容

最新更新