0
votes

I'm rather stuck. I'm feeding a text file into my programm. After reading each character (lower+uppercase=the same character) and counting them I need to sort them (from frequent to less frequent). Currently I'm getting the results/count for each character but I can't figure out how to sort the results. Anything I've tried just messes up my current results.

I've currently got this:

import string

z = open("file_location", 'r')
letters = {}

def count_letter(c):
  if c in letters:
    letters[c] += 1  # if letter in letters add one
  else:
    letters[c] = 1   # if letter not in letters set add letter to dictionary object

def print_letters(letters):
   for x,y in letters.items():
      print ("%s - [%s]" % (x, y)) # print out count for each letter

#Run code  
for line in z:           # for each line in input file
  for letter in line:       # for each letter in line
    letter = letter.strip()
    letter = letter.lower()
    count_letter(letter)    # tally a count of each letter

print_letters(letters)
1

1 Answers

0
votes

try this

letters_sorted = sorted(letters.iteritems(), key=operator.itemgetter(1), reverse=True)