2016-11-18 4 views
-1
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}} 
+0

を...平均はavです何のerage? – Transhuman

+0

試験1の平均、中央値および範囲、および試験2と同じものを辞書から取ります。 – mike

+0

exam1-75,30,86の平均は63.66ですが、あなたの出力は58 – Transhuman

答えて

0
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}} 
0

あなたは辞書をループにfor k, v in dictionary.items()を使用することができます。

if __name__ == '__main__': 
    for k, v in dictionary.items(): 
     print int(v['exam1']) 
     print int(v['exam2']) 
0
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]} 

、あなたは

関連する問題