手机
当前位置:查字典教程网 >脚本专栏 >python >python list使用示例 list中找连续的数字
python list使用示例 list中找连续的数字
摘要:线上有个需求,格式化,从一堆s1,s100-s199中找出连续的服并且格式化显示出来,如:神魔:S106-109,s123,s125御剑:s...

线上有个需求,格式化,从一堆s1,s100-s199中找出连续的服并且格式化显示出来,如:

神魔:S106-109,s123,s125

御剑: s106-109,s123,s125

复制代码 代码如下:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# 2014/01/15 14:15

import sys

from itertools import *

from operator import itemgetter

def parse(filename):

d = {}

for line in open(filename, 'r'):

_line = line.split()

d.setdefault(_line[0], []).append(_line[1])

for key in d.keys():

data = 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__":

filename = sys.argv[1]

parse(filename)

【python list使用示例 list中找连续的数字】相关文章:

python sys模块sys.path使用方法示例

python 从远程服务器下载东西的代码

python中mechanize库的简单使用示例

python client使用http post 到server端的代码

python3.3使用tkinter开发猜数字游戏示例

Python splitlines使用技巧

python str与repr的区别

python33 urllib2使用方法细节讲解

python 从远程服务器下载日志文件的程序

python使用reportlab画图示例(含中文汉字)

精品推荐
分类导航