python list使用示例 list中找连续的数字
神魔: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)
上一篇: 深入理解spring多数据源配置
推荐阅读
-
Python中循环后使用list.append()数据被覆盖问题的解决
-
python list使用示例 list中找连续的数字
-
Python中List.count()方法的使用教程
-
在Python中操作列表之List.append()方法的使用
-
在Python中操作列表之list.extend()方法的使用
-
Python中List.index()方法的使用教程
-
使用Python实现将list中的每一项的首字母大写
-
基于python list对象中嵌套元组使用sort时的排序方法
-
Python中循环后使用list.append()数据被覆盖问题的解决
-
在Python中操作列表之List.pop()方法的使用