python 判断连续数字并返回分组
2019-05-14 本文已影响0人
线断木偶人
假如有(1,2,3,4,7,8,9,10,20)
按连续顺序分组排列
[1,2,3,4]
[7,8,9,10]
[20]
代码如下
from itertools import groupby
lst = [2, 3, 5, 6, 7, 8,1, 11, 12, 13,15,27,28,29]
#fun = lambda (i, v): v - i
fun = lambda x: x[1] - x[0]
for k, g in groupby(enumerate(lst), fun):
print ([v for i, v in g])
#由于python3中lambda不支持用括号的方式解压,只能这样写
#fun = lambda x: x[1] - x[0]
结果
[2, 3]
[5, 6, 7, 8]
[1]
[11, 12, 13]
[15]
[27, 28, 29]