def get_leaders_and_outermosts(): guys = Reader.read_lines("datasets/enron/enron_guys.txt") guys = {int(nid) : email for nid, email in guys} global_leaders, global_outermosts = defaultdict(list), defaultdict(list) for month in xrange(1, 13): n = Network('datasets/enron/timeslots/{:02d}-filtered2.edges'.format(month), is_directed=False, use_communities=True) communities = set(flatten_list(n.communities.values())) month_leaders, month_outermosts = set(), set() for c in communities: n.filter_community([c]) leaders, outermosts = RoleMining(n).find_roles() [month_leaders.add(leader) for leader in leaders] [month_outermosts.add(outer) for outer in outermosts] n.unfilter_graph() for l, c in month_leaders: global_leaders[l].append((month,c)) for o, c in month_outermosts: global_outermosts[o].append((month, c)) print for id, months in global_outermosts.items(): if guys[id] in the_losers: print guys[id], months