Skip to content

Instantly share code, notes, and snippets.

@EdwardIII
Created September 7, 2014 20:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save EdwardIII/e670c13ea558246034c8 to your computer and use it in GitHub Desktop.
Save EdwardIII/e670c13ea558246034c8 to your computer and use it in GitHub Desktop.
#!/usr/bin/env python
def get_average_for_category(ratings, category):
# See how many they could have rated
tasks = [ task for task in rateable_tasks if task['category'] == category ]
num_tasks = len(tasks)
# Calculate the average
rating_scores = [ rating['rating'] for rating in ratings if rating['category'] == category ]
average = sum(rating_scores) / num_tasks
return average
categories = ['House', 'Car', 'Work', 'Family', 'Eating', 'Drinking']
i = 0
rateable_tasks = []
for category in categories:
for i in xrange(0, 5):
rateable_task = 'Some task that pertains to this category #%s'
rateable_tasks.append({ 'name': rateable_task % i, 'category': category })
# Let's add one extra rateable taskon to make 31 tasks:
rateable_tasks.append({
'name': 'One final task to make up the numbers',
'category': 'Drinking',
})
# Example, trying to calculate an overall average rating
# for November which has only 30 days
# People rate themselves on a 1-6 scale
number_of_days_in_november = 30
ratings = []
for i in xrange(0, number_of_days_in_november):
ratings.append({
'rating': 6,
'task': rateable_tasks[i]['name'],
'category': rateable_tasks[i]['category']
})
print "Your scores for November broken down by category on a possible 1-6:"
print "-------------"
for category in categories:
print "%s average: %s" % (category, get_average_for_category(ratings, category))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment