首页 > 代码库 > python list 中找连续的数字(由网友处学习)
python list 中找连续的数字(由网友处学习)
# -*- coding: utf-8 -*-
# python:2.x
__author__ = ‘Administrator‘
#学习这个要求的:http://wsky.org/archives/162.html
import sys
from itertools import *
from operator import *
def parse(f):
d={}
for line in open(f,‘r‘):
_line=line.split()
d.setdefault(_line[0],[]).append(_line[1])
for key in d.keys():
data=http://www.mamicode.com/sorted(map(lambda x:int(x[1:]),d[key]))
sys.stdout.write(key+‘ ‘)
for k,g in groupby(enumerate(data ),lambda (i,x):i-x):
ret=map(itemgetter(1),g)
if len(ret)>1:
sys.stdout.write(‘S%d-%d‘%(ret[0],ret[-1]))
elif len(ret)==1:
sys.stdout.write(str(‘S%s‘)%(ret[0]+‘,‘))
sys.stdout.write(‘\n‘)
if __name__==‘__main__‘:
f=sys.argv[1]
parse(f)
python list 中找连续的数字(由网友处学习)