- obj = {}
- def test(nums):
- nums.append(0)
- for item in nums:
- start = obj.get('start', item)
- end = obj.get('end', item)
- if item - end != 1:
- yield "%s"%start if start == end else '%s~%s'%(start, end)
- obj['start'] = item
- obj['end'] = item
- lst = [1, 2, 3, 4, 5, 7, 8, 15, 20, 21, 22, 23, 24, 28]
- print ','.join([x for x in test(lst)][1:])
来源: http://www.phpxs.com/code/1009265/