You’d still use enumerate()
; you didn’t show how you used it but it but it solves your issue:
for index, (value,num) in enumerate(sorted_list, start=1):
print("{}.\t{:<5}\t{:>5}".format(index, value,num))
I folded your str.ljust()
and str.rjust()
calls into the str.format()
template; this has the added advantage that it’ll work for any value you can format, not just strings.
Demo:
>>> word_list=""'\
... the 8512
... and 7759
... i 6182
... to 6027
... a 4716
... of 4619
... he 2873
... in 2846
... you 2777
... was 2457
... '''.splitlines()
>>> d = dict(line.split() for line in word_list)
>>> sorted_list = sorted(d.items(), key=lambda i: i[1], reverse=True)
>>> for index, (value,num) in enumerate(sorted_list, start=1):
... print("{}.\t{:<5}\t{:>5}".format(index, value,num))
...
1. the 8512
2. and 7759
3. i 6182
4. to 6027
5. a 4716
6. of 4619
7. he 2873
8. in 2846
9. you 2777
10. was 2457
5
solved Creating numbered list of output