def get_score_for_name(name): return sum([ord(c) - ord('A') + 1 for c in name if not c == '"']) def euler_022(): with open('../txt/e022.txt', 'r') as f: names = f.read().split(',') names.sort() s = sum([(i + 1) * get_score_for_name(name) for i, name in enumerate(names)]) return s if __name__ == "__main__": assert(get_score_for_name('COLIN') == 53) assert(euler_022() == 871198282) print("e022.py: {}".format(euler_022()))