Я думаю, что этот модуль Python будет делать то, что вам нужно:
import sys
import math
from collections import OrderedDict
def count_decades( infile ):
decade_counts = OrderedDict()
for line in infile:
number = int( line.split( ' ' )[ 0 ] )
decade_index = int( math.floor( number / 10 ) )
decade_counts[ decade_index ] = decade_counts.get( decade_index, 0 ) + 1
return decade_counts
if __name__ == '__main__':
with open( sys.argv[ 1 ], 'r' ) as infile:
decade_counts = count_decades( infile )
for key, count in decade_counts.items():
print( "{} - {} occurs {} times".format(
key * 10 , key * 10 + 9, count ) )
Когда вызывается так:
python occur.py decades.txt
Результат:
0 - 9 occurs 6 times
10 - 19 occurs 4 times
20 - 29 occurs 5 times
30 - 39 occurs 5 times
100 - 109 occurs 2 times
Может потребоваться другой вывод, но его легко настроить ...
UPDATE:
Для ОП желаемое изменение выхода:
print( "{} - {} occurs {} times".format(
key * 10 , key * 10 + 9, count ) )
до
print( "{} {}".format(
key , count ) )