text: # Names scores
  # Problem 22
  # Using 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?
  
  import string
  
  with open('p022_names.txt', 'r') as f:
      INPUT = f.readline()
  
  
  NAME_LIST = INPUT.replace('"', '').split(',')
  NAME_LIST.sort()
  alphabetical_pos = ((string.ascii_uppercase.index(c) + 1 for c in name) for name in NAME_LIST)
  sums = map(sum, alphabetical_pos)
  sums_x_pos = ((index + 1) * value for index, value in enumerate(sums))
  print(sum(sums_x_pos))
  
  