Ah wait, the penny drops! Now I understand what you mean!
On Thu, Feb 26, 2015 at 07:13:57AM -0500, Ken G. wrote: > In another words, I would desire to show that: > > 5 appears 42 times > 3 appears 35 times > 2 appears 21 times > 4 appears 19 times > > but then I lose my original index of the numbers by reversing. How do I > best keep the original index number to the rearrange numbers within a list? Here's your list again: [0, 0, 21, 35, 19, 42] I think using a list is the wrong answer. I think you should use a dictionary: d = {0: 0, 1: 0, 2: 21, 3: 35, 4: 19, 5: 42} for key, value in sorted(d.items(), reverse=True): print(key, value) which gives this output: 5 42 4 19 3 35 2 21 1 0 0 0 How should you build the dict in the first place? There's an easy way, and an even easier way. Here's the easy way. # count the numbers numbers = [2, 3, 1, 4, 0, 4, 2, 5, 2, 3, 4, 1, 1, 1, 3, 5] counts = {} for n in numbers: i = counts.get(n, 0) counts[n] = i + 1 print(counts) which gives output: {0: 1, 1: 4, 2: 3, 3: 3, 4: 3, 5: 2} Here's the even easier way: from collections import Counter counts = Counter(numbers) print(counts) which gives very similar output: Counter({1: 4, 2: 3, 3: 3, 4: 3, 5: 2, 0: 1}) In both cases, you then run the earlier code to print the items in order: for key, value in sorted(counts.items(), reverse=True): print(key, value) -- Steve _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor