import sys import re from openpyxl import load_workbook from pprint import pprint from collections import defaultdict def merge_common(lists): neigh = defaultdict(set) visited = set() for each in lists: for item in each: neigh[item].update(each) def comp(node, neigh = neigh, visited = visited, vis = visited.add): nodes = set([node]) next_node = nodes.pop while nodes: node = next_node() vis(node) nodes |= neigh[node] - visited yield node for node in neigh: if node not in visited: yield sorted(comp(node)) def parse_results(results): output = {'gl': '-', 'ir': '-', 'ti': '-', 'up': '-'} for r in results: parts = r.split(' - ') if parts[1] == 'GLOOMY': output['gl'] = parts[0] elif parts[1] == 'IRRITABLE': output['ir'] = parts[0] elif parts[1] == 'TIMID': output['ti'] = parts[0] else: output['up'] = parts[0] return output def generate_result(result, color): if result == "GOOD": output = "GOOD