data = [1, 2, 5, 6, 7, 9, 22, 24, 26, 29]
x=2
应返回:
[[1, 2], [5, 6, 7, 9], [22, 24, 26], [29]]
我的代码,
from operator import itemgetter
from itertools import groupby
for k, g in groupby(enumerate(data), lambda x:x[1]-x[0]):
res.append(list(map(itemgetter(1), g)))
该代码返回1的的连续序列
`([[1, 2], [5, 6, 7], [9], [22], [24], [26], [29]] )`
如何修改此代码以获得上述输出或任何其他方法
非常感谢您的帮助。
为此使用numpy:
from numpy import diff, where, split
result= split(data, where(diff(data)>x)[0]+1 )
print(list(map(list, result)))
输出:
[[1, 2], [5, 6, 7, 9], [22, 24, 26], [29]]