# Ex5
# ---
# Using names.txt https://projecteuler.net/project/resources/p022_names.txt
# (right click and 'Save Link/Target As...'),a 46K text file containing
# over five-thousand first names, begin by sorting it into alphabetical order.
# Then working out the alphabetical value for each name,
# multiply this value by its alphabetical position in the list to obtain a name
# score.
# For example, when the list is sorted into alphabetical order, COLIN,
# which is worth 3 + 15 + 12 + 9 + 14 = 53, is the 938th name in the list.
# So, COLIN would obtain a score of 938 × 53 = 49714.
# What is the total of all the name scores in the file?
# https://projecteuler.net/problem=22
def scores(filename):
import string
enu_chars = list(enumerate(string.ascii_uppercase, start=1))
with open(filename) as f:
lst_filename = f.read().lstrip('"').rstrip('"').split('","')
lst_filename.sort()
lst_scores = []
total = 0
for chars in lst_filename:
score = 0
for char in chars:
for stt, var in enu_chars:
if var == char:
score = score + stt
lst_scores.append(score)
total += score * (lst_filename.index(chars) + 1)
print(lst_scores)
print(total)
scores(filename)
# result5.5: 871198282