On 24/12/17 08:12, anish singh wrote: > However, I am stuck. I have below code which is not working.
Define "not working" Do you get an error message? (show us) If the output different to what you expect (show us) Have you tried printing the intermediate results? For example the dictionary before you sort it? Or what about using the default sort, how close is that? Don't expect us to run your code and check the output. You've already done that so share the information. > ---------------------------------------------------------------------------------------- > > import collections > > x = collections.OrderedDict() > import collections > import operator > > > def make_comparator(x, y): > if x[1] > y[1]: > return 1 > elif x[1] < y[1]: > return -1 > elif x[1] == y[1]: > if x > y: > return 1 > elif x < y: > return -1 > return 0 > > > document = "Practice makes perfect. you'll only get Perfect by > practice. just practice!" > words = document.split() > d = collections.defaultdict(int) > for word in words: > word = word.lower() > word = [c if c >= 'a' and c <= 'z' else "" for c in word] > word = "".join(word) > d[word] += 1 > output = [] > for key, value in sorted(d, cmp = make_comparator(x)): > output.append([key, value]) > print(output) > ----------------------------------------------------------------- -- Alan G Author of the Learn to Program web site http://www.alan-g.me.uk/ http://www.amazon.com/author/alan_gauld Follow my photo-blog on Flickr at: http://www.flickr.com/photos/alangauldphotos _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor