Some code I'm playing around with
I'm getting some coding done and exploring Python... here is some sample code that I'm fiddling around with..
from __future__ import division # list of users users = [ { "id": 0, "name": "Alex" }, { "id": 1, "name": "Brian" }, { "id": 2, "name": "Cathy" }, { "id": 3, "name": "David" }, { "id": 4, "name": "Erica" }, { "id": 5, "name": "Frank" }, { "id": 6, "name": "Gary" }, { "id": 7, "name": "Hank" }, { "id": 8, "name": "Indigo" }, { "id": 9, "name": "Jason" } ] # relationship of friendship between users friendships = [(0,1), (0,2), (1,2), (1,3), (2,3), (3,4), (4,5), (5,6), (5,7), (6,8), (7,8), (8,9)] # initialize empty array for user in users: user["friends"] = [] # establish the frienships for each user for i, j in friendships: # this works because users[i] is the user whose id is i users[i]["friends"].append(users[j]) users[j]["friends"].append(users[i]) # this function simply returns the length of the array def number_of_friends(user): """How many friends does _user_ have?""" return len(user["friends"]) # this sums up the total amount of connections total_connections = sum(number_of_friends(user) for user in users) print "Total connections are:", total_connections # let's find the average # from __future__ import division num_users = len(users) avg_connections = total_connections / num_users print "Average amount of connections is:", avg_connections # find the most connected people - largest number of friends # create a list (user_id, number_of_friends) num_friends_by_id = [(user["id"], number_of_friends(user)) for user in users] print "Unsorted list:", num_friends_by_id print "Sorted list:", sorted(num_friends_by_id, key=lambda (user_id, num_friends): num_friends, reverse=True)