python list使用示例 list中找连续的数字_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)

时间: 2024-09-08 08:42:10

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

python实现从一组颜色中找出与给定颜色最接近颜色的方法_python

本文实例讲述了python实现从一组颜色中找出与给定颜色最接近颜色的方法.分享给大家供大家参考.具体分析如下: 这段代码非常有用,可以找到指定颜色相似的颜色,比如有一组8个颜色,现在给定一个rgb格式的演示,找出它与8个颜色中的哪一个最接近,如果你需要做一个按照图片颜色搜索图片的程序,这个就非常有用了. 复制代码 代码如下: from colorsys import rgb_to_hsv colors = dict(( ((196, 2, 51), "RED"), ((255, 165

Python linecache.getline()读取文件中特定一行的脚本_python

比如: import linecacheprint linecache.getline('2.1_open.py', 4) 将返回我上一节事例代码文件2.1_open.py的第4行文字,输出结果:f = open('/home/evergreen/桌面/test') 查看linecache中的实现(我用的是Ulipad,所以直接将光标停留在linecache处,按F6键)

[华为机试练习题]43.在字符串中找出连续最长的数字串

题目 描述: 请一个在字符串中找出连续最长的数字串,并把这个串的长度返回:如果存在长度相同的连续数字串,返回最后一个连续数字串: 注意:数字串只需要是数字组成的就可以,并不要求顺序,比如数字串"1234"的长度就小于数字串"1359055",如果没有数字,则返回空字符串("")而不是NULL! 样例输入 abcd12345ed125ss123058789 abcd12345ss54761 样例输出 输出123058789,函数返回值9 输出547

字符串中找出连续最长的数字字符串的实例代码_C 语言

复制代码 代码如下: //1. 写一个函数,它的原形是int continumax(char *outputstr,char *intputstr) //功能: //在字符串中找出连续最长的数字串,并把这个串的长度返回, //并把这个最长数字串付给其中一个函数参数outputstr所指内存. //例如:"abcd12345ed125ss123456789"的首地址传给intputstr后,函数将返回9,outputstr所指的值为123456789 #include<stdio.

深入理解Python中的元类(metaclass)_python

译注:这是一篇在Stack overflow上很热的帖子.提问者自称已经掌握了有关Python OOP编程中的各种概念,但始终觉得元类(metaclass)难以理解.他知道这肯定和自省有关,但仍然觉得不太明白,希望大家可以给出一些实际的例子和代码片段以帮助理解,以及在什么情况下需要进行元编程.于是e-satis同学给出了神一般的回复,该回复获得了985点的赞同点数,更有人评论说这段回复应该加入到Python的官方文档中去.而e-satis同学本人在Stack Overflow中的声望积分也高达6

开源:Angularjs示例--Sonar中项目使用语言分布图(CoffeeScript版)

       关于SonarLanguage是什么东东,这里就不在描述了,如果你对它感兴趣的话,请移步到上篇随笔开源:Angularjs示例--Sonar中项目使用语言分布图.这里是最近学习CoffeeScript的练习版.      CoffeeScript是一门简洁的,构架于JavaScript之上的预处理器语言,可以静态编译成JavaScript,语法主要受ruby和python影响,目前已经为众多rails和node项目采用.CoffeeScript不是JavaScript的超集,也不是

请问python有没有读取网页中所有jpg图片链接并下载的实例?

问题描述 请问python有没有读取网页中所有jpg图片链接并下载的实例? 我想来学习下,自己弄了运行抓取不全,知道的说下吧. 谢 谢了. 解决方案 抓取不全找找原因,是遍历html文档中的图片没有找全还是下载某些图片的时候遇到错误没有下载下来. 解决方案二: 可以使用scrapy,python下最强大的爬虫框架http://scrapy.org/

c# 连续发送-c#中serialPort 连续发送3次,如果直接发送3次的话 会出现问题接收不完全或其他错误。

问题描述 c#中serialPort 连续发送3次,如果直接发送3次的话 会出现问题接收不完全或其他错误. c#中serialPort 每发送一次接收一个返回值,要连续发送3次,如果直接发送3次的话 会出现和接收的冲突,如何解决这种冲突 让他能顺利的收发完成,分成3步操作的话是可以的已经测试了. 发送方式 第一次发送A1 下位机返回 B1 第二次发送A2 下位机返回 6个数据 第三次发A3 下位机返回25个数据 如何让这三次发送不冲突,能顺利完成 ,求大神解答. 解决方案 我也在找这个问题的答案

请高手指点:C#中得到一串数字中有连续数字的开始和结束位置?

问题描述 比方说0,2,5,6,7,10,12,13,15,18--中,就有5,6,7和12,13两组连续(或更多),则要得到5,6,7的始末位置为(3,5):12,13的始末位置为(7,8)等,如何实现?小弟初学,想到头都破了都想不出,望高手指点,谢谢. 解决方案 解决方案二:简单的处理思路就是把这些数字放到一个key-value的dictionary中,key存放位置,value存放具体数据,接下来就是写程序判断是否连续了.解决方案三:strings="0,2,5,6,7,10,12,13,