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

yipeiwu_com5年前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 pandas cumsum求累计次数的用法

python pandas cumsum求累计次数的用法

本文主要是针对 cumsum函数的一些用法。具体应用场景看下面的数据集。 第一列是userID,第二列是安装的时间,第三列是安装的次数。 我们现在想做一件事情。就是统计用户在某一天前...

python函数修饰符@的使用方法解析

python函数修饰符@的作用是为现有函数增加额外的功能,常用于插入日志、性能测试、事务处理等等。 创建函数修饰符的规则: (1)修饰符是一个函数 (2)修饰符取被修饰函数为参数...

Python第三方库的安装方法总结

Python 是一门优雅的语言,简洁的语法,强大的功能。当然丰富的第三方库,更能加速开发。那么问题来了,如何安装这些第三方库(包)呢? 安装第三方库的方式其实不多。下面就介绍一些技巧。...

用Python编写分析Python程序性能的工具的教程

用Python编写分析Python程序性能的工具的教程

虽然并非你编写的每个 Python 程序都要求一个严格的性能分析,但是让人放心的是,当问题发生的时候,Python 生态圈有各种各样的工具可以处理这类问题。 分析程序的性能可以归结为回答...

python实现简单淘宝秒杀功能

本文实例为大家分享了Python淘宝秒杀的具体代码,供大家参考,具体内容如下 昨天茅台在线上搞秒杀,本来想着靠我惊人的手速去秒一瓶,结果。 所以痛定思痛,想想还是用脚本更靠谱。就在网上搜...