我有一个包含这样的数据的列表:
[1, 2, 3, 4, 7, 8, 10, 11, 12, 13, 14]
我想打印出连续整数的范围:
1-4, 7-8, 10-14
有内置/快速/高效的方法吗?
从文档:
>>> from itertools import groupby >>> from operator import itemgetter >>> data = [ 1, 4,5,6, 10, 15,16,17,18, 22, 25,26,27,28] >>> for k, g in groupby(enumerate(data), lambda (i, x): i-x): ... print map(itemgetter(1), g) ... [1] [4, 5, 6] [10] [15, 16, 17, 18] [22] [25, 26, 27, 28]
您可以很容易地调整它,以获取一组打印范围。