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


Posted in Python onJanuary 27, 2014

线上有个需求,格式化,从一堆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 socket.error: [Errno 98] Address already in use的原因和解决方法
Aug 25 Python
Python 爬虫学习笔记之多线程爬虫
Sep 21 Python
Python过滤txt文件内重复内容的方法
Oct 21 Python
python基于递归解决背包问题详解
Jul 03 Python
python pandas 时间日期的处理实现
Jul 30 Python
python程序中的线程操作 concurrent模块使用详解
Sep 23 Python
Python Websocket服务端通信的使用示例
Feb 25 Python
matplotlib.pyplot.plot()参数使用详解
Jul 28 Python
Numpy(Pandas)删除全为零的列的方法
Sep 11 Python
手把手教你从PyCharm安装到激活(最新激活码),亲测有效可激活至2089年
Nov 25 Python
pycharm远程连接服务器并配置python interpreter的方法
Dec 23 Python
学会迭代器设计模式,帮你大幅提升python性能
Jan 03 Python
Python批量修改文件后缀的方法
Jan 26 #Python
使用cx_freeze把python打包exe示例
Jan 24 #Python
Python的函数嵌套的使用方法
Jan 24 #Python
下载安装setuptool和pip linux安装pip    
Jan 24 #Python
python解析文件示例
Jan 23 #Python
python回调函数的使用方法
Jan 23 #Python
python中的对象拷贝示例 python引用传递
Jan 23 #Python
You might like
php curl模拟post请求小实例
2013/11/13 PHP
Session的工作机制详解和安全性问题(PHP实例讲解)
2014/04/10 PHP
PHPThumb图片处理实例
2014/05/03 PHP
yii添删改查实例
2015/11/16 PHP
Laravel实现构造函数自动依赖注入的方法
2016/03/16 PHP
Yii2创建控制器(createController)方法详解
2016/07/23 PHP
thinkPHP中session()方法用法详解
2016/12/08 PHP
PHP面向对象程序设计方法实例详解
2016/12/24 PHP
php+redis实现商城秒杀功能
2020/11/19 PHP
Docker搭建自己的PHP开发环境
2018/02/24 PHP
Laravel框架自定义验证过程实例分析
2019/02/01 PHP
Laravel 自动生成验证的实例讲解:login / logout
2019/10/14 PHP
Javascript 读后台cookie代码
2008/09/15 Javascript
javascript 事件处理程序介绍
2012/06/27 Javascript
js实现鼠标感应向下滑动隐藏菜单的方法
2015/02/20 Javascript
JavaScript微信定位功能实现方法
2016/11/29 Javascript
js闭包学习心得总结
2018/04/17 Javascript
对Vue beforeRouteEnter 的next执行时机详解
2018/08/25 Javascript
如何安装控制器JavaScript生成插件详解
2018/10/21 Javascript
js中实例与对象的区别讲解
2019/01/21 Javascript
vue使用自定义事件的表单输入组件用法详解【日期组件与货币组件】
2020/06/01 Javascript
js实现炫酷光感效果
2020/09/05 Javascript
[59:00]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD BO3 第一场 3月7日
2021/03/11 DOTA
Python中的作用域规则详解
2015/01/30 Python
浅析Python编写函数装饰器
2016/03/18 Python
Python使用logging结合decorator模式实现优化日志输出的方法
2016/04/16 Python
TensorFlow安装及jupyter notebook配置方法
2017/09/08 Python
python 缺失值处理的方法(Imputation)
2019/07/02 Python
Python csv文件记录流程代码解析
2020/07/16 Python
python函数超时自动退出的实操方法
2020/12/28 Python
皇家道尔顿官网:Royal Doulton
2017/12/06 全球购物
俄罗斯在线水暖商店:Perfecto.ru
2019/10/25 全球购物
建筑工地文明标语
2014/10/09 职场文书
社区党务工作总结2015
2015/05/19 职场文书
幼儿园六一主持词开场白
2015/05/28 职场文书
Mysql数据库值的添加、修改、删除及清空操作实例
2021/06/20 MySQL