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 相关文章推荐
gearman的安装启动及python API使用实例
Jul 08 Python
python获取远程图片大小和尺寸的方法
Mar 26 Python
Python 使用requests模块发送GET和POST请求的实现代码
Sep 21 Python
5款非常棒的Python工具
Jan 05 Python
Python机器学习之K-Means聚类实现详解
Feb 22 Python
Python实现快速计算词频功能示例
Jun 25 Python
python 制作自定义包并安装到系统目录的方法
Oct 27 Python
Python动态强类型解释型语言原理解析
Mar 25 Python
Python通用唯一标识符uuid模块使用案例
Sep 10 Python
Pytorch1.5.1版本安装的方法步骤
Dec 31 Python
python中print格式化输出的问题
Apr 16 Python
python中os.path.join()函数实例用法
May 26 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
实用函数9
2007/11/08 PHP
php中定义网站根目录的常用方法
2010/08/08 PHP
PHP中设置时区,记录日志文件的实现代码
2013/01/07 PHP
php之XML转数组函数的详解
2013/06/07 PHP
PHP7新增运算符用法实例分析
2016/09/26 PHP
PHP实现转盘抽奖算法分享
2020/04/15 PHP
利用PHP扩展Xhprof分析项目性能实践教程
2018/09/05 PHP
redis+php实现微博(三)微博列表功能详解
2019/09/23 PHP
很全的显示阴历(农历)日期的js代码
2009/01/01 Javascript
jQuery中hide()方法用法实例
2014/12/24 Javascript
js代码实现无缝滚动(文字和图片)
2015/08/20 Javascript
基于JavaScript判断浏览器到底是关闭还是刷新(超准确)
2016/02/01 Javascript
JS获取当前页面名称的简单实例
2016/08/19 Javascript
jQuery基于排序功能实现上移、下移的方法
2016/11/26 Javascript
Vue如何从1.0迁移到2.0
2017/10/19 Javascript
Angular Renderer (渲染器)的具体使用
2018/05/03 Javascript
Three.js中矩阵和向量的使用教程
2019/03/19 Javascript
jQuery表单选择器用法详解
2019/08/22 jQuery
JS实现电脑虚拟键盘打字测试
2020/06/24 Javascript
Python机器学习之SVM支持向量机
2017/12/27 Python
Django1.9 加载通过ImageField上传的图片方法
2018/05/25 Python
Python docx库用法示例分析
2019/02/16 Python
解决pycharm运行程序出现卡住scanning files to index索引的问题
2019/06/27 Python
python3.7实现云之讯、聚合短信平台的短信发送功能
2019/09/26 Python
使用pyqt 实现重复打开多个相同界面
2019/12/13 Python
详解pyinstaller生成exe的闪退问题解决方案
2020/06/19 Python
Python基于staticmethod装饰器标示静态方法
2020/10/17 Python
详解CSS3中@media的实际使用
2015/08/04 HTML / CSS
AMAVII眼镜官网:时尚和设计师太阳镜
2019/05/05 全球购物
Nike墨西哥官网:Nike MX
2020/08/30 全球购物
生日派对邀请函
2014/01/13 职场文书
勤俭节约演讲稿
2014/05/08 职场文书
员工保密承诺书
2014/05/28 职场文书
2015年十月一日放假通知
2015/08/18 职场文书
PHP中多字节字符串操作实例详解
2021/08/23 PHP
Win11 Build 22000.829更新补丁KB5015882发布(附更新修复内容汇总)
2022/07/15 数码科技