modifiedL = [('10-1984', 2.8), ('10-1984', 2.8), ('10-1984', 2.85), ('10-1984', 2.82), ('10-1984', 2.78), ('10-1984', 2.75), ('09-1984', 2.82), ('09-1984', 2.9), ('09-1984', 2.9), ('09-1984', 2.94), ('09-1984', 2.99), ('09-1984', 3.02), ('09-1984', 3.05), ('09-1984', 3.04), ('09-1984', 3.11), ('09-1984', 3.22), ('09-1984', 3.13), ('09-1984', 3.09), ('09-1984', 2.94), ('09-1984', 3.02), ('09-1984', 2.97), ('09-1984', 2.98)]
avg={}
for date, value in modifiedL:
avg.setdefault(date, []).append(value)
for key, value in avg.items():
avg[key] = sum(value)/float(len(value))
After first loop:
avg = {'10-1984': [2.8, 2.81, 2.78, 2.77, 2.84, 2.95, 2.92, 2.85, 2.88, 2.88, 2.8, 2.68, 2.7, 2.56, 2.67, 2.68, 2.77, 2.8, 2.8, 2.85, 2.82, 2.78, 2.75], '09-1984': [2.82, 2.9, 2.9, 2.94, 2.99, 3.02, 3.05, 3.04, 3.11, 3.22, 3.13, 3.09, 2.94, 3.02, 2.97, 2.98]}
After second loop:
avg= {'10-1984': average, '09-1984': average}
Is there a way to simplify the code or perform this in one line?