python list使用示例 list中找连续的数字

yipeiwu_com6年前Python基础

线上有个需求,格式化,从一堆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变量的作用域

简单了解python变量的作用域

1.效果图: 2.代码 # 作用域 是 对象生效的区域(对象能被使用的区域) # 全局作用域在任意位置可生效 # 局部作用域在函数内生效 c = 20 # 全局变量 def f...

Python替换月份为英文缩写的实现方法

Python替换月份为英文缩写的实现方法

示例数据: zs,3 li,5 ww,10 cc,4 xm,2 xh,1 pp,6 qq,7 ff,11 dd,8 kk,12 mm,9 处理后效果: 脚本代码如下: 创建 文件名....

Python中条件选择和循环语句使用方法介绍

同C语言、Java一样,Python中也存在条件选择和循环语句,其风格和C语言、java的很类似,但是在写法和用法上还是有一些区别。今天就让我们一起来了解一下。 一.条件选择语句 Pyt...

python数据结构之列表和元组的详解

python数据结构之 列表和元组 序列:序列是一种数据结构,它包含的元素都进行了编号(从0开始)。典型的序列包括列表、字符串和元组。其中,列表是可变的(可以进行修改),而元组和字符串...

在Python中使用异步Socket编程性能测试

OK,首先写一个python socket的server段,对开放三个端口:10000,10001,10002.krondo的例子中是每个server绑定一个端口,测试的时候需要分别开3...