首页 > 代码库 > 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 中找连续的数字(由网友处学习)