numbers = ['3','1','6','5','4','4','3','2','1','4','3','5','4','9','84','7','878','6']
counts = dict()
for number in numbers:
counts[number] = counts.get(number, 0) + 1
print counts
for k,v in sorted(counts.items()):
print k,v
Output:
{'878': 1, '1': 2, '3': 3, '2': 1, '5': 2, '4': 4, '7': 1, '6': 2, '9': 1, '84': 1}
1 2
2 1
3 3
4 4
5 2
6 2
7 1
84 1
878 1
9 1
Why is 9 the last one instead of 84 and 878?